Skip to content

Commit 9169aae

Browse files
authored
Merge pull request #2364 from AppDaemon:service-registration
improved error text
2 parents 424e0a7 + 15bb36a commit 9169aae

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

appdaemon/adapi.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1845,7 +1845,20 @@ def register_service(self, service: str, cb: Callable, namespace: str | None = N
18451845
self.logger.debug("register_service: %s, %s", service, kwargs)
18461846

18471847
namespace = namespace or self.namespace
1848-
self.AD.services.register_service(namespace, *service.split("/"), cb, __async="auto", name=self.name, **kwargs)
1848+
try:
1849+
domain, service = service.split("/", 2)
1850+
except ValueError as e:
1851+
raise ade.DomainNotSpecified(namespace, service) from e
1852+
else:
1853+
self.AD.services.register_service(
1854+
namespace,
1855+
domain=domain,
1856+
service=service,
1857+
callback=cb,
1858+
__async="auto",
1859+
name=self.name,
1860+
**kwargs
1861+
) # fmt: skip
18491862

18501863
def deregister_service(self, service: str, namespace: str | None = None) -> bool:
18511864
"""Deregister a service that had been previously registered.

appdaemon/exceptions.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,14 @@ def __str__(self):
227227
f"Services that exist in {self.domain}: {', '.join(self.domain_services)}"
228228
)
229229

230+
@dataclass
231+
class DomainNotSpecified(AppDaemonException):
232+
namespace: str
233+
service: str
234+
235+
def __str__(self):
236+
return f"domain not specified for service '{self.service}'"
237+
230238

231239
@dataclass
232240
class AppCallbackFail(AppDaemonException):

0 commit comments

Comments
 (0)