From 958daa08f6d96c2c9935760eead1def4229ed641 Mon Sep 17 00:00:00 2001 From: John Bowdre <61015723+jbowdre@users.noreply.github.com> Date: Tue, 14 Jun 2022 08:57:05 -0500 Subject: [PATCH] Create vraGetFlavors.js --- .../vraGetFlavors.js | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Orchestrator/Actions/com.virtuallypotato.inputs/vraGetFlavors.js diff --git a/Orchestrator/Actions/com.virtuallypotato.inputs/vraGetFlavors.js b/Orchestrator/Actions/com.virtuallypotato.inputs/vraGetFlavors.js new file mode 100644 index 0000000..a769888 --- /dev/null +++ b/Orchestrator/Actions/com.virtuallypotato.inputs/vraGetFlavors.js @@ -0,0 +1,40 @@ +/* JavaScript: vraGetImages action + Retrieves the list of flavors (sizes) available in a given Zone. + Inputs: zoneName (string) + Return type: array/string +*/ +if (!(zoneName == "" || zoneName == null)) { + var arrFlavors = new Array(); + var regionUri = null; + var token = System.getModule("com.virtuallypotato.utility").vraLogin(); + var zones = JSON.parse(System.getModule("com.virtuallypotato.utility").vraExecute(token, "GET", "/iaas/api/zones", null)).content; + System.debug("Zones: " + JSON.stringify(zones)); + for each (zone in zones) { + if (zone.name === zoneName) { + System.debug("Matching zone: " + zone.name); + regionUri = zone._links.region.href; + } + if (regionUri != null) { break; }; + } + System.debug("Matching region URI: " + regionUri); + + var flavors = JSON.parse(System.getModule("com.virtuallypotato.utility").vraExecute(token, "GET", "/iaas/api/flavors", null)).content; + System.debug("Flavors: " + JSON.stringify(flavors)); + flavors.forEach( + function (flavor) { + if (flavor._links.region.href === regionUri) { + System.debug("Flavors in region: " + JSON.stringify(flavor.mapping)); + for (var i in flavor.mapping) { + System.debug("Flavor: " + i); + arrFlavors.push(i); + } + } + } + ); + + arrFlavors.sort(); + System.getModule("com.virtuallypotato.utility").vraLogout(token); + return arrFlavors; +} else { + return [""]; +}