Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
| Download
Views: 39595
1
from __future__ import print_function
2
3
import os, json, socket
4
5
join = os.path.join
6
7
def cmd(s):
8
print(s)
9
if os.system(s):
10
raise RuntimeError
11
12
def chdir():
13
os.chdir(os.path.split(os.path.abspath(__file__))[0])
14
15
def base_url():
16
info_file = join(os.environ['SMC'], 'info.json')
17
info = json.loads(open(info_file).read())
18
base_url = "/{project_id}/port/{hub_port}".format(project_id=info['project_id'], hub_port=get_ports()['hub'])
19
open("../../data/base_url",'w').write(base_url)
20
return base_url
21
22
def get_open_port(): # http://stackoverflow.com/questions/2838244/get-open-tcp-port-in-python
23
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
24
s.bind(("",0))
25
s.listen(1)
26
port = s.getsockname()[1]
27
s.close()
28
return port
29
30
def get_ports():
31
P = os.path.split(os.path.abspath(__file__))[0]
32
path = join(P, 'ports')
33
if not os.path.exists(path):
34
os.mkdir(path)
35
ports = {'hub':0, 'hub-api':0}
36
for x in ports.keys():
37
file = join(path, x)
38
if os.path.exists(file):
39
ports[x] = int(open(file).read())
40
else:
41
ports[x] = get_open_port()
42
open(file,'w').write(str(ports[x]))
43
return ports
44
45