Batch: use specified network IP address (#6095)

This commit is contained in:
Tristan Rice 2023-03-20 10:00:01 -07:00 committed by GitHub
parent fedac8c0d8
commit 293c6c7aa0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -724,6 +724,9 @@ class Job(threading.Thread, BaseModel, DockerModel, ManagedState):
else {} else {}
) )
network_mode = settings.moto_network_mode()
network_name = settings.moto_network_name()
for kwargs in container_kwargs: for kwargs in container_kwargs:
environment = kwargs["environment"] environment = kwargs["environment"]
environment["MOTO_HOST"] = settings.moto_server_host() environment["MOTO_HOST"] = settings.moto_server_host()
@ -732,8 +735,6 @@ class Job(threading.Thread, BaseModel, DockerModel, ManagedState):
"MOTO_HTTP_ENDPOINT" "MOTO_HTTP_ENDPOINT"
] = f'{environment["MOTO_HOST"]}:{environment["MOTO_PORT"]}' ] = f'{environment["MOTO_HOST"]}:{environment["MOTO_PORT"]}'
network_name = settings.moto_network_name()
network_mode = settings.moto_network_mode()
if network_name: if network_name:
kwargs["network"] = network_name kwargs["network"] = network_name
elif network_mode: elif network_mode:
@ -753,7 +754,12 @@ class Job(threading.Thread, BaseModel, DockerModel, ManagedState):
for kwargs in container_kwargs: for kwargs in container_kwargs:
if len(containers) > 0: if len(containers) > 0:
env = kwargs["environment"] env = kwargs["environment"]
ip = containers[0].attrs["NetworkSettings"]["IPAddress"] network_settings = containers[0].attrs["NetworkSettings"]
networks = network_settings["Networks"]
if network_name in networks:
ip = networks[network_name]["IPAddress"]
else:
ip = network_settings["IPAddress"]
env["AWS_BATCH_JOB_MAIN_NODE_PRIVATE_IPV4_ADDRESS"] = ip env["AWS_BATCH_JOB_MAIN_NODE_PRIVATE_IPV4_ADDRESS"] = ip
container = self.docker_client.containers.run( container = self.docker_client.containers.run(
detach=True, detach=True,