From 01bd17d3618cb0edfadf3dc93a80943acd501751 Mon Sep 17 00:00:00 2001 From: Ivan Gromov Date: Thu, 28 Jan 2021 00:34:21 +0500 Subject: [PATCH] Added Linode support --- app/server.py | 13 ++++ app/static/provider-linode.vue | 109 +++++++++++++++++++++++++++++++++ app/static/provider-setup.vue | 4 +- 3 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 app/static/provider-linode.vue diff --git a/app/server.py b/app/server.py index 34c5c54..af7721c 100644 --- a/app/server.py +++ b/app/server.py @@ -301,6 +301,19 @@ async def azure_regions(_): return web.json_response(regions) +@routes.get('/linode_config') +async def linode_config(_): + return web.json_response({"has_secret": 'LINODE_API_TOKEN' in os.environ}) + + +@routes.get('/linode_regions') +async def linode_config(_): + async with ClientSession() as session: + async with session.get('https://api.linode.com/v4/regions') 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-linode.vue b/app/static/provider-linode.vue new file mode 100644 index 0000000..85be0ef --- /dev/null +++ b/app/static/provider-linode.vue @@ -0,0 +1,109 @@ + + + diff --git a/app/static/provider-setup.vue b/app/static/provider-setup.vue index bf5a160..0d198e0 100644 --- a/app/static/provider-setup.vue +++ b/app/static/provider-setup.vue @@ -34,6 +34,7 @@ module.exports = { { name: "Google Compute Engine", alias: "gce" }, { name: "Hetzner Cloud", alias: "hetzner" }, { name: "Vultr", alias: "vultr" }, + { name: "Linode", alias: "linode" }, { name: "Scaleway", alias: "scaleway" }, { name: "OpenStack (DreamCompute optimised)", alias: "openstack" }, { name: "CloudStack (Exoscale optimised)", alias: "cloudstack" }, @@ -64,7 +65,8 @@ module.exports = { 'vultr': window.httpVueLoader('/static/provider-vultr.vue'), 'scaleway': window.httpVueLoader('/static/provider-scaleway.vue'), 'hetzner': window.httpVueLoader('/static/provider-hetzner.vue'), - 'azure': window.httpVueLoader('/static/provider-azure.vue') + 'azure': window.httpVueLoader('/static/provider-azure.vue'), + 'linode': window.httpVueLoader('/static/provider-linode.vue') } };