Quantcast
Channel: VMware Communities: Message List
Viewing all articles
Browse latest Browse all 244595

Re: using VMware.Vim

$
0
0

I've re-written the spaghetti i've been using into more formal functions, enjoy. If you use these make sure you add a reference to vmware.vim.dll and add the following two statements to the top

 

using System.Collections.Specialized;

 

using VMware.Vim;

 


protected VimClient ConnectServer(string viServer, string viUser, string viPassword)
{    VimClient vimClient = new VimClient();    ServiceContent vimServiceContent = new ServiceContent();    UserSession vimSession = new UserSession();    vimClient.Connect("https://" + viServer.Trim() + "/sdk");    vimSession = vimClient.Login(viUser, viPassword);    vimServiceContent = vimClient.ServiceContent;    return vimClient;
}
protected List<Datacenter> GetDataCenter(VimClient vimClient, string dcName = null)
{    List<Datacenter> lstDatacenters = new List<Datacenter>();    List<EntityViewBase> appDatacenters = new List<EntityViewBase>();    if (dcName == null)    {        appDatacenters = vimClient.FindEntityViews(typeof(Datacenter), null, null, null);    }    else    {        NameValueCollection dcFilter = new NameValueCollection();        dcFilter.Add("name", dcName);        appDatacenters = vimClient.FindEntityViews(typeof(Datacenter), null, dcFilter, null);    }    foreach (EntityViewBase appDatacenter in appDatacenters)    {        Datacenter thisDatacenter = (Datacenter)appDatacenter;        lstDatacenters.Add(thisDatacenter);    }    return lstDatacenters;
}

protected List<Datastore> GetDataStore(VimClient vimClient, Datacenter selectedDC)
{    List<Datastore> lstDatastores = new List<Datastore>();    List<EntityViewBase> appDatastores = vimClient.FindEntityViews(typeof(Datastore), selectedDC.MoRef, null, null);    foreach (EntityViewBase appDatastore in appDatastores)    {        Datastore thisDatastore = (Datastore)appDatastore;        lstDatastores.Add(thisDatastore);    }    return lstDatastores;
}

protected List<DistributedVirtualPortgroup> GetDVPortGroups(VimClient vimClient, Datacenter selectedDC)
{    List<DistributedVirtualPortgroup> lstPortGroups = new List<DistributedVirtualPortgroup>();    List<EntityViewBase> appPortGroups = vimClient.FindEntityViews(typeof(DistributedVirtualPortgroup), selectedDC.MoRef, null, null);    if (appPortGroups != null)    {        foreach (EntityViewBase appPortGroup in appPortGroups)        {            DistributedVirtualPortgroup thisPortGroup = (DistributedVirtualPortgroup)appPortGroup;            lstPortGroups.Add(thisPortGroup);        }        return lstPortGroups;    }    else    {        return null;    }
}

protected List<Network> GetPortGroups(VimClient vimClient, Datacenter selectedDC)
{    List<Network> lstPortGroups = new List<Network>();    List<EntityViewBase> appPortGroups = vimClient.FindEntityViews(typeof(Network), selectedDC.MoRef, null, null);    if (appPortGroups != null)    {        foreach (EntityViewBase appPortGroup in appPortGroups)        {            Network thisPortGroup = (Network)appPortGroup;            lstPortGroups.Add(thisPortGroup);        }        return lstPortGroups;    }    else    {        return null;    }
}

protected List<VirtualMachine> GetVirtualMachines(VimClient vimClient, Datacenter selectedDC = null, string vmName = null)
{    List<VirtualMachine> lstVirtualMachines = new List<VirtualMachine>();    NameValueCollection vmFilter = new NameValueCollection();    ManagedObjectReference DcMoRef = new ManagedObjectReference();    if (vmName != null)    {        vmFilter.Add("name", vmName);    }    else    {        vmFilter = null;    }    if (selectedDC != null)    {        DcMoRef = selectedDC.MoRef;    }    else    {        DcMoRef = null;    }    List<EntityViewBase> appVirtualMachines = vimClient.FindEntityViews(typeof(VirtualMachine), DcMoRef, vmFilter, null);    if (appVirtualMachines != null)    {        foreach (EntityViewBase appVirtualMachine in appVirtualMachines)        {            VirtualMachine thisVirtualMachine = (VirtualMachine)appVirtualMachine;            lstVirtualMachines.Add(thisVirtualMachine);        }        return lstVirtualMachines;    }    else    {        return null;    }
}

protected List<CustomizationSpecInfo> GetCustomizationSpecs(VimClient vimClient)
{    List<CustomizationSpecInfo> lstSpecInfo = new List<CustomizationSpecInfo>();    CustomizationSpecManager specManager = (CustomizationSpecManager)vimClient.GetView(vimClient.ServiceContent.CustomizationSpecManager, null);    if (specManager != null)    {        foreach (CustomizationSpecInfo specInfo in specManager.Info)        {            lstSpecInfo.Add(specInfo);        }        return lstSpecInfo;    }    else    {        return null;    }
}

Viewing all articles
Browse latest Browse all 244595

Trending Articles