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