diff --git a/app/server.py b/app/server.py index f267301..b4c1eb5 100644 --- a/app/server.py +++ b/app/server.py @@ -3,10 +3,11 @@ import json import yaml import boto3 -from os.path import join, dirname -from aiohttp import web +from os.path import join, dirname, expanduser +from aiohttp import web, ClientSession import concurrent.futures import sys +import os from google.auth.transport.requests import AuthorizedSession from google.oauth2 import service_account @@ -165,6 +166,32 @@ async def gce_regions(request): return web.json_response(json.loads(response.content)) +@routes.get('/vultr_config') +async def check_vultr_config(request): + default_path = expanduser(join('~', '.vultr.ini')) + response = {'path': None} + try: + open(default_path, 'r').read() + response['path'] = default_path + except IOError: + pass + + if 'VULTR_API_CONFIG' in os.environ: + try: + open(os.environ['VULTR_API_CONFIG'], 'r').read() + response['path'] = os.environ['VULTR_API_CONFIG'] + except IOError: + pass + return web.json_response(response) + + +@routes.get('/vultr_regions') +async def vultr_regions(request): + async with ClientSession() as session: + async with session.get('https://api.vultr.com/v1/regions/list') as r: + json_body = await r.json() + return web.json_response(json_body) + app = web.Application() app.router.add_routes(routes) app.add_routes([web.static('/static', join(PROJECT_ROOT, 'app', 'static'))]) diff --git a/app/static/provider-setup.vue b/app/static/provider-setup.vue index 643a61c..e7fb41c 100644 --- a/app/static/provider-setup.vue +++ b/app/static/provider-setup.vue @@ -60,7 +60,8 @@ module.exports = { 'digitalocean': window.httpVueLoader('/static/provider-do.vue'), 'lightsail': window.httpVueLoader('/static/provider-lightsail.vue'), 'ec2': window.httpVueLoader('/static/provider-ec2.vue'), - 'gce': window.httpVueLoader('/static/provider-gce.vue') + 'gce': window.httpVueLoader('/static/provider-gce.vue'), + 'vultr': window.httpVueLoader('/static/provider-vultr.vue') } }; diff --git a/app/static/provider-vultr.vue b/app/static/provider-vultr.vue new file mode 100644 index 0000000..cb062c7 --- /dev/null +++ b/app/static/provider-vultr.vue @@ -0,0 +1,103 @@ + + + \ No newline at end of file