From c789e56f4f3e96b6cf1774d6bf024748ef721686 Mon Sep 17 00:00:00 2001 From: John Bowdre <61015723+jbowdre@users.noreply.github.com> Date: Tue, 14 Jun 2022 09:28:33 -0500 Subject: [PATCH] Create getDefaultCustomizationSpec --- .../getDefaultCustomizationSpec | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 Orchestrator/Actions/com.virtuallypotato.inputs/getDefaultCustomizationSpec diff --git a/Orchestrator/Actions/com.virtuallypotato.inputs/getDefaultCustomizationSpec b/Orchestrator/Actions/com.virtuallypotato.inputs/getDefaultCustomizationSpec new file mode 100644 index 0000000..d5c1c8d --- /dev/null +++ b/Orchestrator/Actions/com.virtuallypotato.inputs/getDefaultCustomizationSpec @@ -0,0 +1,36 @@ +/* JavaScript: getDefaultCustomizationSpec action + Consults a vRO configuration ("CustomizationSpecs") to suggest a default/preferred customization spec based on OS family type and whether the machine will be domain-joined. + Inputs: imageName (string), adObject (boolean) +*/ +if (!(imageName == "" || imageName == null)) { + var imageFamily = null; + var join = null; + var vraToken = System.getModule("com.virtuallypotato.utility").vraLogin(); + var images = JSON.parse(System.getModule("com.virtuallypotato.utility").vraExecute(vraToken, "GET", "/iaas/api/images", null)).content; + System.debug("Images: " + JSON.stringify(images)); + System.getModule("com.virtuallypotato.utility").vraLogout(vraToken); + for each (image in images) { + for (var i in image.mapping) { + if (i === imageName) { + imageFamily = image.mapping[i].osFamily; + } + } + if (imageFamily != null) { break; }; + } + if (adObject) { + join = "domain"; + } else { + join = "workgroup"; + } + var desiredSpec = imageFamily + "-" + join; + System.debug("Desired spec: " + desiredSpec); + try { + var customSpec = System.getModule("com.virtuallypotato.utility").getConfigValue("vPotato", "CustomizationSpecs", desiredSpec); + System.debug("Found spec: " + customSpec); + } catch (exception) { + return ""; + } + return customSpec; +} else { + return ""; +}