Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
from tornado import gen
from dockerspawner import DockerSpawner, SystemUserSpawner
# urllib3 complains that we're making unverified HTTPS connections to swarm,
# but this is ok because we're connecting to swarm via 127.0.0.1. I don't
# actually want swarm listening on a public port, so I don't want to connect
# to swarm via the host's FQDN, which means we can't do fully verified HTTPS
# connections. To prevent the warning from appearing over and over and over
# again, I'm just disabling it for now.
import requests
requests.packages.urllib3.disable_warnings()
class SwarmSpawner(SystemUserSpawner):
container_ip = '0.0.0.0'
@gen.coroutine
def lookup_node_name(self):
"""Find the name of the swarm node that the container is running on."""
containers = yield self.docker('containers', all=True)
for container in containers:
if container['Id'] == self.container_id:
name, = container['Names']
node, container_name = name.lstrip("/").split("/")
raise gen.Return(node)
@gen.coroutine
def start(self, image=None, extra_create_kwargs=None, extra_host_config=None):
# look up mapping of node names to ip addresses
from tornado import gen
from dockerspawner import DockerSpawner, SystemUserSpawner
# urllib3 complains that we're making unverified HTTPS connections to swarm,
# but this is ok because we're connecting to swarm via 127.0.0.1. I don't
# actually want swarm listening on a public port, so I don't want to connect
# to swarm via the host's FQDN, which means we can't do fully verified HTTPS
# connections. To prevent the warning from appearing over and over and over
# again, I'm just disabling it for now.
import requests
requests.packages.urllib3.disable_warnings()
class SwarmSpawner(SystemUserSpawner):
container_ip = '0.0.0.0'
def _user_id_default(self):
return 2000
@gen.coroutine
def lookup_node_name(self):
"""Find the name of the swarm node that the container is running on."""
containers = yield self.docker('containers', all=True)
for container in containers:
if container['Id'] == self.container_id:
name, = container['Names']
node, container_name = name.lstrip("/").split("/")
raise gen.Return(node)