[~] Refactor

This commit is contained in:
Siarhei Siniak 2021-11-13 13:14:40 +03:00
parent dc98e808df
commit 5077588000
3 changed files with 105 additions and 2 deletions

84
d1/dynu_update.py Normal file

@ -0,0 +1,84 @@
import requests
import logging
import pprint
import copy
import io
import json
import sys
logging.warning('start dynu_update')
with io.open(
sys.argv[1],
'r'
) as f:
dynu_config = json.load(f)
logging.warning('loaded dynu_config')
t2 = requests.get(
'https://api.dynu.com/v2/oauth2/token',
auth=(
dynu_config['oath2_client_id'],
dynu_config['oath2_secret'],
)
).json()
logging.warning('got access_token')
t1 = requests.get(
'https://api.dynu.com/v2/dns',
headers={
'Authorization': 'Bearer %s' % t2['access_token']
}
).json()
DYNU_DOMAIN = t1['domains'][0]
logging.warning('got dynu_domain')
t3 = requests.get(
'https://api.dynu.com/v2/dns/%d/webredirect' % DYNU_DOMAIN['id'],
headers={
'Authorization': 'Bearer %s' % t2['access_token']
}
).json()
DYNU_REDIRECT = t3['webRedirects'][0]
logging.warning('got dynu_redirect')
NGROK_DOMAIN = sys.argv[2]
t6 = requests.get('http://%s:4040/api/tunnels' % NGROK_DOMAIN).json()
TUNNEL_URL = t6['tunnels'][0]['public_url']
logging.warning('got tunnel_url')
if TUNNEL_URL != DYNU_REDIRECT['url']:
t5 = copy.deepcopy(t3['webRedirects'][0])
t5.update(
dict(
url=TUNNEL_URL,
)
)
DYNU_REDIRECT = requests.post(
'https://api.dynu.com/v2/dns/%d/webRedirect/%d' % (
DYNU_DOMAIN['id'],
t3['webRedirects'][0]['id']
),
headers={
'Authorization': 'Bearer %s' % t2['access_token']
},
json=t5
).json()
logging.warning('updated dynu_redirect')
else:
logging.warning('skip update dynu_redirect')
logging.warning(
pprint.pformat(
dict(
NGROK_DOMAIN=NGROK_DOMAIN,
TUNNEL_URL=TUNNEL_URL,
DYNU_DOMAIN=DYNU_DOMAIN,
DYNU_REDIRECT=DYNU_REDIRECT,
)
)
)
logging.warning('done dynu_update')

@ -8,8 +8,18 @@ services:
- ./d1/nginx_config.py:/app/d1/nginx_config.py:ro - ./d1/nginx_config.py:/app/d1/nginx_config.py:ro
- ./tmp/cache/forward.nginx.json:/app/tmp/cache/forward.nginx.json:ro - ./tmp/cache/forward.nginx.json:/app/tmp/cache/forward.nginx.json:ro
restart: always restart: always
ports: dynu:
- 80:80 build:
context: .
dockerfile: ./docker/dynu/Dockerfile
volumes:
- ./d1/dynu_update.py:/app/d1/dynu_update.py:ro
- ./tmp/cache/dynu.auth.json:/app/tmp/cache/dynu.auth.json:ro
ngrok:
image: wernight/ngrok
links:
- app
command: ['ngrok', 'http', 'app:80']
#forward: #forward:
# build: # build:
# context: . # context: .

9
docker/dynu/Dockerfile Normal file

@ -0,0 +1,9 @@
FROM python:3
WORKDIR /app
RUN pip3 install requests
ENTRYPOINT /bin/sh -c "\
python3 d1/dynu_update.py tmp/cache/dynu.auth.json ngrok \
"