Skip to content

Commit 9a3427c

Browse files
committed
Use traitlets BuildExecutor in app
1 parent b300437 commit 9a3427c

File tree

2 files changed

+49
-23
lines changed

2 files changed

+49
-23
lines changed

binderhub/app.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
from traitlets.config import Application
4242

4343
from .base import AboutHandler, Custom404, VersionHandler
44-
from .build import Build
44+
from .build import Build, BuildExecutor
4545
from .builder import BuildHandler
4646
from .config import ConfigHandler
4747
from .events import EventLog
@@ -270,10 +270,11 @@ def _valid_badge_base_url(self, proposal):
270270

271271
build_class = Type(
272272
Build,
273+
klass=BuildExecutor,
273274
help="""
274275
The class used to build repo2docker images.
275276
276-
Must inherit from binderhub.build.Build
277+
Must inherit from binderhub.build.BuildExecutor
277278
""",
278279
config=True,
279280
)
@@ -818,6 +819,7 @@ def initialize(self, *args, **kwargs):
818819
"build_class": self.build_class,
819820
"registry": registry,
820821
"traitlets_config": self.config,
822+
"traitlets_parent": self,
821823
"google_analytics_code": self.google_analytics_code,
822824
"google_analytics_domain": self.google_analytics_domain,
823825
"about_message": self.about_message,

binderhub/builder.py

Lines changed: 45 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from tornado.web import Finish, authenticated
2323

2424
from .base import BaseHandler
25-
from .build import ProgressEvent
25+
from .build import Build, ProgressEvent
2626
from .utils import KUBE_REQUEST_TIMEOUT
2727

2828
# Separate buckets for builds and launches.
@@ -425,26 +425,50 @@ async def get(self, provider_prefix, _unescaped_spec):
425425
ref_url=self.ref_url,
426426
)
427427

428-
self.build = build = BuildClass(
429-
q=q,
430-
# api object can be None if we are using FakeBuild
431-
api=self.settings.get("kubernetes_client"),
432-
name=build_name,
433-
namespace=self.settings["build_namespace"],
434-
repo_url=repo_url,
435-
ref=ref,
436-
image_name=image_name,
437-
push_secret=push_secret,
438-
build_image=self.settings["build_image"],
439-
memory_limit=self.settings["build_memory_limit"],
440-
memory_request=self.settings["build_memory_request"],
441-
docker_host=self.settings["build_docker_host"],
442-
node_selector=self.settings["build_node_selector"],
443-
appendix=appendix,
444-
log_tail_lines=self.settings["log_tail_lines"],
445-
git_credentials=provider.git_credentials,
446-
sticky_builds=self.settings["sticky_builds"],
447-
)
428+
if issubclass(BuildClass, Build):
429+
# Deprecated
430+
build = BuildClass(
431+
q=q,
432+
# api object can be None if we are using FakeBuild
433+
api=self.settings.get("kubernetes_client"),
434+
name=build_name,
435+
namespace=self.settings["build_namespace"],
436+
repo_url=repo_url,
437+
ref=ref,
438+
image_name=image_name,
439+
push_secret=push_secret,
440+
build_image=self.settings["build_image"],
441+
memory_limit=self.settings["build_memory_limit"],
442+
memory_request=self.settings["build_memory_request"],
443+
docker_host=self.settings["build_docker_host"],
444+
node_selector=self.settings["build_node_selector"],
445+
appendix=appendix,
446+
log_tail_lines=self.settings["log_tail_lines"],
447+
git_credentials=provider.git_credentials,
448+
sticky_builds=self.settings["sticky_builds"],
449+
)
450+
else:
451+
build = BuildClass(
452+
# Commented properties should be set in traitlets config
453+
parent=self.settings["traitlets_parent"],
454+
q=q,
455+
name=build_name,
456+
# namespace=self.settings["build_namespace"],
457+
repo_url=repo_url,
458+
ref=ref,
459+
image_name=image_name,
460+
# push_secret=push_secret,
461+
# build_image=self.settings["build_image"],
462+
# memory_limit=self.settings["build_memory_limit"],
463+
# memory_request=self.settings["build_memory_request"],
464+
# docker_host=self.settings["build_docker_host"],
465+
# node_selector=self.settings["build_node_selector"],
466+
appendix=appendix,
467+
# log_tail_lines=self.settings["log_tail_lines"],
468+
git_credentials=provider.git_credentials,
469+
# sticky_builds=self.settings["sticky_builds"],
470+
)
471+
self.build = build
448472

449473
with BUILDS_INPROGRESS.track_inprogress():
450474
done = False

0 commit comments

Comments
 (0)