|
@@ -63,7 +63,7 @@ def get_all_containers():
|
|
|
def get_all_external_ports():
|
|
|
ports = []
|
|
|
|
|
|
- for m in map(lambda x: x['attrs']['NetworkSettings']['Ports'], get_all_containers()):
|
|
|
+ for m in map(lambda x: x.get('attrs').get('NetworkSettings').get('Ports'), get_all_containers()):
|
|
|
if not m:
|
|
|
continue
|
|
|
|
|
@@ -76,21 +76,51 @@ def get_all_external_ports():
|
|
|
|
|
|
return ports
|
|
|
|
|
|
+'''
|
|
|
+'''
|
|
|
+def get_network(name=None):
|
|
|
+ if not name:
|
|
|
+ return None
|
|
|
+
|
|
|
+ client = get_docker_client()
|
|
|
+
|
|
|
+ if not client:
|
|
|
+ return None
|
|
|
+
|
|
|
+ try:
|
|
|
+ network = client.networks.get(name)
|
|
|
+
|
|
|
+ return {
|
|
|
+ 'id': network.id,
|
|
|
+ 'short_id': network.short_id,
|
|
|
+ 'name': network.name,
|
|
|
+ 'attrs': network.attrs
|
|
|
+ }
|
|
|
+ except (NotFound, APIError):
|
|
|
+ return None
|
|
|
+
|
|
|
'''
|
|
|
'''
|
|
|
def get_internal_ip(container_name_or_id=None):
|
|
|
+ # check name
|
|
|
if not container_name_or_id:
|
|
|
return None
|
|
|
|
|
|
+ # check client
|
|
|
client = get_docker_client()
|
|
|
-
|
|
|
if not client:
|
|
|
return None
|
|
|
|
|
|
+ # check network
|
|
|
+ network = get_network(settings.INTERNAL_NETWORK_NAME)
|
|
|
+ if not network:
|
|
|
+ return None
|
|
|
+
|
|
|
try:
|
|
|
container = client.containers.get(container_name_or_id)
|
|
|
-
|
|
|
- import pdb; pdb.set_trace()
|
|
|
+ internal_ip = container.attrs.get('NetworkSettings').get('Networks').get(network.get('name')).get('IPAddress')
|
|
|
+
|
|
|
+ return str(internal_ip)
|
|
|
except (NotFound, APIError):
|
|
|
return None
|
|
|
|