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

Re: Creating vm in vsphere server 5.0 using vsphere Api

$
0
0

following is the code snippets for above specified query.Can you suggest me am i missing any mandatory parameters while creation of vm.Am using vsphere web services sdk 5.0

following fault(error) am getting:

Fault VimApi.PlatformConfigFault
Message: An error occurred during host configuration.
private void createVM()
        {
            _service = cb.getConnection()._service;
            String dcName = cb.get_option("datacentername");
            ManagedObjectReference dcmor = cb.getServiceUtil().GetDecendentMoRef(null, "Datacenter", dcName);
            ManagedObjectReference hfmor
                   = cb.getServiceUtil().GetMoRefProp(dcmor, "hostFolder");
           ArrayList crmors
               = cb.getServiceUtil().GetDecendentMoRefs(hfmor, "ComputeResource");

 

ManagedObjectReference hostmor=null;

 

                if (hostName != null)

                {

                    hostmor = cb.getServiceUtil().GetDecendentMoRef(hfmor, "HostSystem", hostName);

               }

 

               else

                {

                    hostmor = cb.getServiceUtil().GetFirstDecendentMoRef(dcmor, "HostSystem");

                }

 

   ManagedObjectReference crmor = null;

                hostName = (String)cb.getServiceUtil().GetDynamicProperty(hostmor, "name");

 

                for (int i = 0; i < crmors.Count; i++)

                {

                    ManagedObjectReference computeRsc = null;

                    foreach (object hostobj in crmors)

                    {

                        object[] objArray = (object[])hostobj;

 

                        computeRsc = (ManagedObjectReference)objArray[0];

                    }

 

                    ManagedObjectReference[] hrmors

                      = (ManagedObjectReference[])cb.getServiceUtil().GetDynamicProperty(computeRsc, "host");

 

                    if (hrmors != null && hrmors.Length > 0)

                    {

                        for (int j = 0; j < hrmors.Length; j++)

                        {

                            String hname

                               = (String)cb.getServiceUtil().GetDynamicProperty(hrmors[j], "name");

                            if (hname.Equals(hostName))

                            {

                                ManagedObjectReference cmrs = null;

                                foreach (object hostobj in crmors)

                                {

                                    object[] objArray = (object[])hostobj;

                                    cmrs = (VimApi.ManagedObjectReference)objArray[0];

                                    crmor = cmrs;

                                }                       

                                i = crmors.Count + 1;

                                j = hrmors.Length + 1;

                            }

                        }

                    }

                }

 

                ManagedObjectReference resourcePool

                   = cb.getServiceUtil().GetMoRefProp(crmor, "resourcePool");

                ManagedObjectReference vmFolderMor

                   = cb.getServiceUtil().GetMoRefProp(dcmor, "vmFolder");

 

                VirtualMachineConfigSpec vmConfigSpec = vmUtils.createVmConfigSpec(cb.get_option("vmname"),

                                                 cb.get_option("datastorename"), int.Parse(cb.get_option("disksize")), crmor, hostmor);

 

                vmConfigSpec.name = cb.get_option("vmname");

                vmConfigSpec.annotation = "VMAnnotation";

                vmConfigSpec.memoryMB = (long)(int.Parse(cb.get_option("memorysize")));

                vmConfigSpec.memoryMBSpecified = true;

                vmConfigSpec.numCPUs = int.Parse(cb.get_option("cpucount"));

                vmConfigSpec.numCPUsSpecified = true;

                vmConfigSpec.guestId = (cb.get_option("guestosid"));

 

                ManagedObjectReference taskmor = _service.CreateVM_Task(vmFolderMor, vmConfigSpec, resourcePool, hostmor );

                String res = cb.getServiceUtil().WaitForTask(taskmor);

}

 

private static OptionSpec[] constructOptions()

        {

            OptionSpec[] useroptions = new OptionSpec[8];

            useroptions[0] = new OptionSpec("vmname", "String", 1

                                            , "samplevm"

                                            , "samplevm");

            useroptions[1] = new OptionSpec("datacentername", "String", 1,

                                            "datacentername",

                                            "ha-datacenter");

            useroptions[2] = new OptionSpec("hostname", "String", 1

                                            , "Host"

                                            , "vsphere01.xyz.local");

            useroptions[3] = new OptionSpec("guestosid", "String", 1,

                                            "Type of Guest OS",

                                            "Microsoft Windows 7 (64-bit)");

                                            //"Microsoft Windows Server 2008 R2(64-bit)"); //winXPProGuest

            useroptions[4] = new OptionSpec("cpucount", "Integer", 1

                                            , "Total CPU Count"

                                            , "2");

            useroptions[5] = new OptionSpec("disksize", "Integer", 1,

                                            "Size of the Disk",

                                            "41943040");

            useroptions[6] = new OptionSpec("memorysize", "Integer", 1

                                            , "Size of the Memory in the blocks of 1024 MB"

                                            , "4096");

            useroptions[7] = new OptionSpec("datastorename", "String", 1,

                                            "Name of the datastore",

                                            "datastore1");

            return useroptions;

        }

 

 

 

 

public static void Main(String[] args)

        {

            VMCreate obj = new VMCreate();

            cb = AppUtil.AppUtil.initialize("VMCreate"

                                    , VMCreate.constructOptions()

                                   , args);

            cb.connect();

            vmUtils = new VMUtils(cb);

            obj.createVM();

            cb.disConnect();

            }

 

any help greatly appriciated..because am struggling like anything to create a vm.

Note:I dont have San as storage device ,instead am using local datadtore as storage.

 

Thanks& regards

Asif.


Viewing all articles
Browse latest Browse all 293210

Trending Articles



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