Skip to content

Commit 5afd19c

Browse files
committed
Rollback python_on_whales conversion
1 parent aa5fea5 commit 5afd19c

File tree

10 files changed

+77
-197
lines changed

10 files changed

+77
-197
lines changed

buildrunner/__init__.py

Lines changed: 20 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import types
2222
from typing import List, Optional
2323

24-
import python_on_whales
2524
import requests
2625

2726
from retry import retry
@@ -39,7 +38,7 @@
3938
)
4039
from buildrunner.steprunner import BuildStepRunner
4140
from buildrunner.docker.multiplatform_image_builder import MultiplatformImageBuilder
42-
import buildrunner.docker.builder as legacy_builder
41+
import buildrunner.docker.builder
4342

4443

4544
LOGGER = logging.getLogger(__name__)
@@ -288,37 +287,15 @@ def get_source_image(self):
288287
source_archive_path: "source.tar",
289288
SOURCE_DOCKERFILE: "Dockerfile",
290289
}
291-
if self.buildrunner_config.run_config.use_legacy_builder:
292-
image = legacy_builder.build_image(
293-
temp_dir=self.buildrunner_config.global_config.temp_dir,
294-
inject=inject,
295-
timeout=self.docker_timeout,
296-
docker_registry=self.buildrunner_config.global_config.docker_registry,
297-
nocache=True,
298-
pull=False,
299-
)
300-
self._source_image = image
301-
else:
302-
# Use buildx builder
303-
native_platform = self._step_runner.multi_platform.get_native_platform()
304-
LOGGER.info(f"Setting platforms to [{native_platform}]")
305-
platforms = [native_platform]
306-
built_images_info = (
307-
self._step_runner.multi_platform.build_multiple_images(
308-
platforms=platforms,
309-
inject=inject,
310-
cache=False,
311-
pull=False,
312-
build_args={
313-
"BUILDRUNNER_DISTRO": os.environ.get("BUILDRUNNER_DISTRO")
314-
},
315-
)
316-
)
317-
if len(built_images_info.built_images) != 1:
318-
raise BuildRunnerProcessingError(
319-
"Failed to build source image. Retrying the build may resolve the issue."
320-
)
321-
self._source_image = built_images_info.built_images[0].trunc_digest
290+
image = buildrunner.docker.builder.build_image(
291+
temp_dir=self.buildrunner_config.global_config.temp_dir,
292+
inject=inject,
293+
timeout=self.docker_timeout,
294+
docker_registry=self.buildrunner_config.global_config.docker_registry,
295+
nocache=True,
296+
pull=False,
297+
)
298+
self._source_image = image
322299

323300
return self._source_image
324301

@@ -519,16 +496,11 @@ def run(self): # pylint: disable=too-many-statements,too-many-branches,too-many
519496
if self._source_image:
520497
self.log.write(f"Destroying source image {self._source_image}\n")
521498
try:
522-
if self.buildrunner_config.run_config.use_legacy_builder:
523-
_docker_client.remove_image(
524-
self._source_image,
525-
noprune=False,
526-
force=True,
527-
)
528-
else:
529-
python_on_whales.docker.image.remove(
530-
self._source_image, prune=True, force=True
531-
)
499+
_docker_client.remove_image(
500+
self._source_image,
501+
noprune=False,
502+
force=True,
503+
)
532504
except ImageNotFound:
533505
self.log.warning(
534506
f"Failed to remove source image {self._source_image}\n"
@@ -540,16 +512,11 @@ def run(self): # pylint: disable=too-many-statements,too-many-branches,too-many
540512
# reverse the order of the images since child images would likely come after parent images
541513
for _image in self.generated_images[::-1]:
542514
try:
543-
if self.buildrunner_config.run_config.use_legacy_builder:
544-
_docker_client.remove_image(
545-
_image,
546-
noprune=False,
547-
force=True,
548-
)
549-
else:
550-
python_on_whales.docker.image.remove(
551-
_image, prune=True, force=True
552-
)
515+
_docker_client.remove_image(
516+
_image,
517+
noprune=False,
518+
force=True,
519+
)
553520
except Exception as _ex: # pylint: disable=broad-except
554521
self.log.write(f"Error removing image {_image}: {str(_ex)}\n")
555522
else:

buildrunner/docker/__init__.py

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
from typing import Tuple
1313
import urllib.parse
1414
import docker
15-
import python_on_whales
1615

1716
from buildrunner.errors import BuildRunnerError, BuildRunnerConfigurationError
1817

@@ -96,21 +95,17 @@ def new_client(
9695
)
9796

9897

99-
def force_remove_container(docker_client, container, use_legacy_builder: bool):
98+
def force_remove_container(docker_client, container):
10099
"""
101100
Force removes a container from the given docker client.
102101
:param docker_client: the docker client
103102
:param container: the container
104-
:param use_legacy_builder: whether to use the legacy builder
105103
"""
106-
if use_legacy_builder:
107-
docker_client.remove_container(
108-
container,
109-
force=True,
110-
v=True,
111-
)
112-
else:
113-
python_on_whales.docker.remove(container, force=True, volumes=True)
104+
docker_client.remove_container(
105+
container,
106+
force=True,
107+
v=True,
108+
)
114109

115110

116111
def get_dockerfile(dockerfile: str, temp_dir: str = None) -> Tuple[str, bool]:

buildrunner/docker/builder.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -277,9 +277,7 @@ def cleanup(self):
277277
# iterate through and destroy intermediate containers
278278
for container in self.intermediate_containers:
279279
try:
280-
force_remove_container(
281-
self.docker_client, container, use_legacy_builder=True
282-
)
280+
force_remove_container(self.docker_client, container)
283281
except docker.errors.APIError as err:
284282
logger.debug(
285283
f"Error removing intermediate container {container}: {err}"

buildrunner/docker/daemon.py

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@
88

99
import os
1010

11-
import python_on_whales
1211

13-
from buildrunner.config import BuildRunnerConfig
1412
from buildrunner.docker import DOCKER_DEFAULT_DOCKERD_URL
1513

1614
DAEMON_IMAGE_NAME = "busybox:latest"
@@ -99,13 +97,8 @@ def stop(self):
9997
f"Destroying Docker daemon container {self._daemon_container:.10}\n"
10098
)
10199
if self._daemon_container:
102-
if BuildRunnerConfig.get_instance().run_config.use_legacy_builder:
103-
self.docker_client.remove_container(
104-
self._daemon_container,
105-
force=True,
106-
v=True,
107-
)
108-
else:
109-
python_on_whales.docker.remove(
110-
self._daemon_container, force=True, volumes=True
111-
)
100+
self.docker_client.remove_container(
101+
self._daemon_container,
102+
force=True,
103+
v=True,
104+
)

buildrunner/docker/importer.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,11 @@
66
with the terms of the Adobe license agreement accompanying it.
77
"""
88

9-
import python_on_whales
109
import yaml
1110

1211
import docker
1312
import docker.errors
1413

15-
from buildrunner.config import BuildRunnerConfig
1614
from buildrunner.docker import new_client
1715
from buildrunner.errors import BuildRunnerProcessingError
1816
from buildrunner.utils import is_dict
@@ -43,11 +41,7 @@ def import_image(self):
4341
"""
4442

4543
try:
46-
import_return = None
47-
if BuildRunnerConfig.get_instance().run_config.use_legacy_builder:
48-
import_return = self.docker_client.import_image(self.src)
49-
else:
50-
import_return = python_on_whales.docker.import_(self.src)
44+
import_return = self.docker_client.import_image(self.src)
5145
except docker.errors.APIError as apie:
5246
raise BuildRunnerProcessingError(
5347
f"Error importing image from archive file {self.src}: {apie}"

buildrunner/docker/runner.py

Lines changed: 16 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,9 @@
2323
from docker.utils import compare_version
2424
from retry import retry
2525
import docker.errors
26-
import python_on_whales
2726
import six
2827
import timeout_decorator
2928

30-
from buildrunner.config import BuildRunnerConfig
3129
from buildrunner.docker import (
3230
new_client,
3331
force_remove_container,
@@ -133,10 +131,6 @@ def __init__(self, image_config, dockerd_url=None, log=None):
133131
if log:
134132
log.write("\nImage pulled successfully\n")
135133

136-
self.use_docker_py = (
137-
BuildRunnerConfig.get_instance().run_config.use_legacy_builder
138-
)
139-
140134
def start(
141135
self,
142136
shell="/bin/sh",
@@ -242,10 +236,7 @@ def start(
242236

243237
# start the container
244238
self.container = self.docker_client.create_container(self.image_name, **kwargs)
245-
if self.use_docker_py:
246-
self.docker_client.start(self.container["Id"])
247-
else:
248-
python_on_whales.docker.start(self.container["Id"])
239+
self.docker_client.start(self.container["Id"])
249240

250241
# run any supplied provisioners
251242
if provisioners:
@@ -263,44 +254,31 @@ def stop(self):
263254
Stop the backing Docker container.
264255
"""
265256
if self.container:
266-
if self.use_docker_py:
267-
self.docker_client.stop(
268-
self.container["Id"],
269-
timeout=0,
270-
)
271-
else:
272-
python_on_whales.docker.stop(self.container["Id"], time=0)
257+
self.docker_client.stop(
258+
self.container["Id"],
259+
timeout=0,
260+
)
273261

274262
def cleanup(self):
275263
"""
276264
Cleanup the backing Docker container, stopping it if necessary.
277265
"""
278266
if self.container:
279-
use_docker_py = (
280-
BuildRunnerConfig.get_instance().run_config.use_legacy_builder
281-
)
282267
for container in self.containers:
283268
try:
284-
force_remove_container(
285-
self.docker_client, container, use_legacy_builder=use_docker_py
286-
)
269+
force_remove_container(self.docker_client, container)
287270
except docker.errors.NotFound:
288271
try:
289272
container_ids = self.docker_client.containers(
290273
filters={"label": container}, quiet=True
291274
)
292275
if container_ids:
293276
for container_id in container_ids:
294-
if use_docker_py:
295-
self.docker_client.remove_container(
296-
container_id["Id"],
297-
force=True,
298-
v=True,
299-
)
300-
else:
301-
python_on_whales.docker.remove(
302-
container_id["Id"], force=True, volumes=True
303-
)
277+
self.docker_client.remove_container(
278+
container_id["Id"],
279+
force=True,
280+
v=True,
281+
)
304282
else:
305283
print(
306284
f'Unable to find docker container with name or label "{container}"'
@@ -309,16 +287,11 @@ def cleanup(self):
309287
print(
310288
f'Unable to find docker container with name or label "{container}"'
311289
)
312-
if use_docker_py:
313-
self.docker_client.remove_container(
314-
self.container["Id"],
315-
force=True,
316-
v=True,
317-
)
318-
else:
319-
python_on_whales.docker.remove(
320-
self.container["Id"], force=True, volumes=True
321-
)
290+
self.docker_client.remove_container(
291+
self.container["Id"],
292+
force=True,
293+
v=True,
294+
)
322295

323296
self.container = None
324297

0 commit comments

Comments
 (0)