From f1ec110673dd47e2b909a0cce2deed2a56e18660 Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Mon, 23 Nov 2015 10:27:27 -0800 Subject: [PATCH] vultr: getSshKeyId --- images/createImage | 5 ++++- images/vultr.js | 27 +++++++++++++-------------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/images/createImage b/images/createImage index f3bafe819..2da2cb7ac 100755 --- a/images/createImage +++ b/images/createImage @@ -1,6 +1,6 @@ #!/bin/bash -set -eux -o pipefail +set -eu -o pipefail assertNotEmpty() { : "${!1:? "$1 is not set."}" @@ -58,6 +58,9 @@ if [[ "${provider}" == "digitalocean" ]]; then fi vps="${SCRIPT_DIR}/digitalocean.sh" +elif [[ "${provider}" == "vultr" ]]; then + export VULTR_TOKEN="${VULTR_TOKEN}" + vps="${SCRIPT_DIR}/vultr.js" else echo "Unknown provider : ${provider}" exit 1 diff --git a/images/vultr.js b/images/vultr.js index b22072b5e..fb9aff118 100755 --- a/images/vultr.js +++ b/images/vultr.js @@ -13,32 +13,31 @@ function exit(error, result) { process.exit(error ? 1 : 0); } -var gApiToken = process.env.API_TOKEN; -if (!gApiToken) exit('Script requires API_TOKEN env to be set'); +var gApiToken = process.env.VULTR_TOKEN; +if (!gApiToken) exit(new Error('Script requires VULTR_TOKEN env to be set')); if (process.argv.length < 3) { - exit('Usage: vultr '); + exit(new Error('Usage: vultr ')); } -function getSshKeyId(keyName) { - request.get('https://api.vultr.com/v1/sshkey/list') +function getSshKeyId(keyName, callback) { + var res = request.get('https://api.vultr.com/v1/sshkey/list') .query({ api_key : gApiToken }) - .end(function (error, res) { + .end(); - if (error) exit(error); + if (res.statusCode !== 200) exit(new Error('Invalid response')); - var allKeys = Object.keys(res.body); - for (var i = 0; i < allKeys.length; i++) { - if (keyName === allKeys[i]) exit(null, res.body[keyName].key); - } + var allKeyIds = Object.keys(res.body); + for (var i = 0; i < allKeyIds.length; i++) { + if (keyName === res.body[allKeyIds[i]].name) return callback(null, allKeyIds[i]); // also SSHKEYID + } - exit(new Error('key not found')); - }); + callback(new Error('key not found')); } switch (process.argv[2]) { case 'get_ssh_key_id': - getSshKeyId(process.argv[3]); + getSshKeyId(process.argv[3], exit); break; case 'create':