Skip to content

Commit 5990312

Browse files
committed
BuildExecutor.identifier for BinderHub /version endpoint
1 parent d73b0a5 commit 5990312

File tree

3 files changed

+20
-2
lines changed

3 files changed

+20
-2
lines changed

binderhub/app.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -865,6 +865,9 @@ def initialize(self, *args, **kwargs):
865865

866866
launch_quota = self.launch_quota_class(parent=self, executor=self.executor)
867867

868+
# Construct a Builder so that we can extract the version string to pass to the
869+
# /version handler
870+
temporary_builder = self.builder_class(parent=self)
868871
self.tornado_settings.update(
869872
{
870873
"log_function": log_request,
@@ -877,6 +880,7 @@ def initialize(self, *args, **kwargs):
877880
"build_token_check_origin": self.build_token_check_origin,
878881
"build_token_secret": self.build_token_secret,
879882
"build_token_expires_seconds": self.build_token_expires_seconds,
883+
"builder_identifier": temporary_builder.identifier,
880884
"pod_quota": self.pod_quota,
881885
"per_repo_quota": self.per_repo_quota,
882886
"per_repo_quota_higher": self.per_repo_quota_higher,

binderhub/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ async def get(self):
247247
self.write(
248248
json.dumps(
249249
{
250-
"builder": self.settings["build_image"],
250+
"builder": self.settings["builder_identifier"],
251251
"binderhub": binder_version,
252252
}
253253
)

binderhub/build.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from kubernetes import client, watch
1717
from tornado.ioloop import IOLoop
1818
from tornado.log import app_log
19-
from traitlets import Any, Bool, Dict, Integer, Unicode, default
19+
from traitlets import Any, Bool, Dict, Integer, Unicode, default, observe
2020
from traitlets.config import LoggingConfigurable
2121

2222
from .utils import KUBE_REQUEST_TIMEOUT, rendezvous_rank
@@ -101,6 +101,15 @@ class BuildExecutor(LoggingConfigurable):
101101
config=True,
102102
)
103103

104+
identifier = Unicode(
105+
"",
106+
help=(
107+
"Identifier or other metadata for the builder e.g. repo2docker version. "
108+
"This is included in the BinderHub version endpoint"
109+
),
110+
config=True,
111+
)
112+
104113
def __init__(self, **kwargs):
105114
super().__init__(**kwargs)
106115
self.main_loop = IOLoop.current()
@@ -239,6 +248,11 @@ def _default_namespace(self):
239248
config=True,
240249
)
241250

251+
@observe("build_image")
252+
def _build_image_changed(self, change):
253+
if not self.identifier:
254+
self.identifier = change.new
255+
242256
docker_host = Unicode(
243257
"/var/run/docker.sock",
244258
help=(

0 commit comments

Comments
 (0)