Quantcast
Channel: VMware Communities : Discussion List - vRealize Orchestrator
Viewing all articles
Browse latest Browse all 6251

Find virtual network based on naming convention

$
0
0

Hello,

I am working on my new 'VM auto deploy' workflow.  The one thing I learned from the 1st I built was I do not like to use configuration items (too clumsy and breaks everything when an object changes).

 

I have this part of a module that finds networks based on naming convention, then selects a preferred network (VDS higher priority).

Convention:

[%network address%_(DPortGrp || vNet)_VM##]

E.g. 192.168.1.0_DPortGrp_VM01 = network->192.168.1.0 DPortGrp->vds VM01-> virtual machine network

E.g. 192.168.1.0_vNetVM01 = network->192.168.1.0 vNet->vss VM01-> virtual machine network

 

My main question is around the code concerning building the object based array.  Is it the most efficient way to accomplish this?  (the full module is attached)

 

// Find networks matching RegEx
var ipNetworkRegEx = ipNetwork.replace("\.","\\\.","g");
var regExNetwork = "^(" + ipNetworkRegEx + ")_(" + vdsNetworkBody + "|" + vssNetworkBody + ")(_" + vmNetworkSuffix + "|" + vmNetworkSuffix + ")";


var matchedHostNetworks = [];
  for (i in allHostNetworks) {  var currentObj = allHostNetworks[i];  if (currentObj.name.match(new RegExp(regExNetwork,"gmi"))) {  matchedHostNetworks.push({  network:currentObj,  type:currentObj.vimType  });  }  }  for (key in matchedHostNetworks) {  System.log("Matched networks: " + matchedHostNetworks[key].network + " with type of " + matchedHostNetworks[key].type);  }  if (matchedHostNetworks.length < 1) {  System.error("!!!!!!!!!!!!!!!!!!!!!Error!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");  System.error("Module=SetVmNetwork");  System.error("No networks were found to match criteria: " + regExNetwork);  System.error("!!!!!!!!!!!!!!!!!!!!!Error!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");  throw exception;  }  if (matchedHostNetworks.length == 1) {  System.log("ESXi host " + host.name + " has a network that matched the criteria: " + matchedHostNetworks[0].network);  var choosenHostNetworks = matchedHostNetworks;  }  if (matchedHostNetworks.length > 1) {  System.log("Multiple networks matched the criteria.");  System.log("The following network meet the preference priority.");  var choosenHostNetworks = matchedHostNetworks.filter(function(item){  return item.type === networkPreference;  })  }
System.log("The final network choosen is: " + choosenHostNetworks[0].network);

Viewing all articles
Browse latest Browse all 6251

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>