23 lines
		
	
	
		
			466 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			466 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env python3
 | 
						|
 | 
						|
import re
 | 
						|
import consul
 | 
						|
import docker
 | 
						|
 | 
						|
running = {}
 | 
						|
 | 
						|
c = consul.Consul()
 | 
						|
client = docker.from_env()
 | 
						|
 | 
						|
for services in c.catalog.services():
 | 
						|
    for service in services:
 | 
						|
 | 
						|
        idx, details = c.catalog.service(service)
 | 
						|
        if len(details) == 0:
 | 
						|
            continue
 | 
						|
 | 
						|
 
 | 
						|
        for item in details:
 | 
						|
            link = item['ServiceName']+".service."+item['Datacenter']+".consul:"+str(item['ServicePort'])
 | 
						|
            print("http://"+link)
 |