Summary/Use Cases:
This workflow can be used to automatically generate a server name in your environment. With the inputs given, it generates the next unused name available. In my case, I used partial name because we have different environments (Prod, Dev, QA).
Inputs:
- partialname: Type = String
- domainSuffix: Type = String
Outputs:
- vmName: Type = String
- fqdnout: Type = String
The Workflow:
The Code:
As you can see there is only a scriptable task within the workflow.
// Read temp server name list - prepare to invoke file writing capabilities if needed
var fr = new FileReader("D:\\VCOInstallationPath\\Windows\\IPReservation\\NamesReserved.txt");
var fw = new FileWriter("D:\\VCOInstallationPath\\Windows\\IPReservation\\NamesReserved.txt");
fr.open();
var content = fr.readAll();
fr.close();
// Initialize variables
var number = 1 ;
var temphost = 0 ; // If we don't set temphost to zero, we break out of for loop imediatley
// Function to pad zeros on number that we increment while number is less then 10
function padzero(number) {
return (number < 10 ? '0' : '') + number
}
// increment through hostnames unitil we find a hostname that does not exist
System.log("Your partial name is: " + partialname) ;
System.log("Starting loop --- ") ;
for (number=1; temphost != null; number++)
{
var padded_number=padzero(number) ;
var vmName = partialname + padded_number;
if(content.search(vmName) <0)
{
System.log("Server name: " + vmName + " not found in master list. Recording new name and continuing.") ;
fw.open() ;
fw.writeLine(" " + vmName) ;
fw.close() ;
var fqdn = vmName + "." + domainSuffix ;
var temphost = System.resolveHostName(fqdn) ;
System.log(temphost);
System.log("A host by the name of " + fqdn + " exists with the IP address of: " + temphost) ;
System.sleep(500) ;
}
else
{
System.log("Server Name: " + vmName + " found in master list - Incrementing with next number and starting over") ;
temphost != null ;
}
}
// Log for debuging purposes
//Output FQDN
fqdnout = fqdn;
System.log("") ;
System.log("The vmName to pass as output is: " + vmName);
System.log("The FQDN to use is: " + fqdn) ;