29 lines
		
	
	
		
			575 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			575 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env python3
 | 
						|
 | 
						|
import re
 | 
						|
import consul
 | 
						|
import docker
 | 
						|
import sys
 | 
						|
import subprocess
 | 
						|
 | 
						|
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)
 | 
						|
 | 
						|
 | 
						|
if sys.argv[1]:
 | 
						|
    subprocess.Popen(['xdg-open', sys.argv[1]])
 | 
						|
    sys.exit(1)
 |