Quantcast
Channel: VMware Communities : All Content - VMware vCenter Converter SDK
Viewing all articles
Browse latest Browse all 706

Sample C# code for conversion of managed (VC or ESX) VM to Workstation VM

$
0
0

Disclaimer: This code snippet is provided without any guarantee. I've copied and modified it from an enhanced version of the SDK samples I use. It is a kind of addendum to the samples for informative purposes.

 

 


private void CreateConversionJob()
  {
     ConverterServerConversionConversionJobSpec jobSpec = BuildConversionJobSpec();

 

     if (jobSpec == null)
     {
        System.Console.WriteLine("ERROR: Failed to build Conversion Job specification.");
        return;
     }

 

     ConverterServerConversionConversionJobInfo conversionJobInfo = _converterServer.SubmitJob(jobSpec);

 

     if (conversionJobInfo == null)
     {
        System.Console.WriteLine("ERROR: Failed to submit P2V Conversion Job.");
        return;
     }

 

     System.Console.WriteLine("Conversion Job Id = {0} created ", conversionJobInfo.key);
     if (conversionJobInfo.mostRecentError == null) {
        System.Console.WriteLine("successfully.");
     } else {
        System.Console.WriteLine(". Most recent error: {0}", conversionJobInfo.mostRecentError.localizedMessage);
     }
  }

 

 
  private ConverterServerConversionConversionJobSpec
  BuildConversionJobSpec()
  {
     ConverterServerConversionConversionJobSpec jobSpec =
        new ConverterServerConversionConversionJobSpec();
     jobSpec.name = ""some job name";
     jobSpec.description = "some job description";
     jobSpec.firstRunSpecified = false;
     jobSpec.startSuspended = false;
     jobSpec.startSuspendedSpecified = true;
     jobSpec.source = BuildSourceSpec();
     jobSpec.conversionParams = BuildConversionParams();

 

     return jobSpec;
  }
 
 
  private ConverterComputerSpec
  BuildSourceSpec()
  {
     ConverterComputerSpec sourceSpec = new ConverterComputerSpec();
     sourceSpec.location = BuildManagedVMLocation();

     return sourceSpec;
  }
 
 
  private ConverterComputerSpecManagedVmLocation
  BuildManagedVMLocation()
  {
     ConverterComputerSpecManagedVmLocation managedVMLocation =
                                new ConverterComputerSpecManagedVmLocation();

 

     ConverterVimConnectionSpecLoginVimCredentials vimCredentials =
                                new ConverterVimConnectionSpecLoginVimCredentials();
     vimCredentials.password = "VC/ESX password";
     vimCredentials.username = "VC/ESX user name";

 

     ConverterVimConnectionSpec vimConnectionSpec = new ConverterVimConnectionSpec();
     vimConnectionSpec.hostname = "VC/ESX name or IP address";
     vimConnectionSpec.credentials = vimCredentials;
     vimConnectionSpec.verifyPeer = false;
     vimConnectionSpec.verifyPeerSpecified = true;
     vimConnectionSpec.sslThumbprint = null;

 

     managedVMLocation.vimConnect = vimConnectionSpec;
     managedVMLocation.vmName = "source VM name";

 

     ManagedObjectReference vmMoRef = new ManagedObjectReference();
     vmMoRef.type = "VirtualMachine";
     vmMoRef.Value = "MoId of the source VM";
     managedVMLocation.vm = vmMoRef;

 

     return managedVMLocation;
  }

 

 
  private ConverterConversionParams
  BuildConversionParams()
  {
     ConverterConversionParams conversionParams = new ConverterConversionParams();
     conversionParams.doClone = true;
     conversionParams.doCloneSpecified = true;
     conversionParams.cloningParams = BuildCloningParams();
     conversionParams.doReconfig = false;
     conversionParams.doReconfigSpecified = true;
     conversionParams.doInstallTools = false;
     conversionParams.doInstallToolsSpecified = true;
     conversionParams.doCustomize = false;
     conversionParams.doCustomizeSpecified = true;
     conversionParams.customizationParams = null;
     conversionParams.powerOnTargetVM = false;
     conversionParams.powerOnTargetVMSpecified = true;
     conversionParams.removeRestoreCheckpoints = false;
     conversionParams.removeRestoreCheckpointsSpecified = true;
     conversionParams.throttlingParams = null;

 

     return conversionParams;
  }
 
 
  private ConverterCloningParams
  BuildCloningParams()
  {
     ConverterCloningParams cloningParams = new ConverterCloningParams();

 

     ConverterTargetVmSpec targetVMSpec = new ConverterTargetVmSpec();
     targetVMSpec.name = "some VM name";
     targetVMSpec.location = BuildHostedTargetVMLocation();

 

     cloningParams.target = targetVMSpec;

 


     ConverterBasicHardwareParams hardwareParams = new ConverterBasicHardwareParams();
     cloningParams.basicHardwareParams = hardwareParams;
     cloningParams.ovfParams = new ConverterOvfParams();
     cloningParams.ovfParams = new ConverterOvfParams();
     cloningParams.ovfParams.ova = false;
     cloningParams.ovfParams.certificateFile = false;
     cloningParams.ovfParams.manifestFile = false;

 

     return cloningParams;
  }
 
 
  private ConverterTargetVmSpecVmLocation
  BuildHostedTargetVMLocation()
  {
     ConverterTargetVmSpecHostedVmLocation targetVMLocation =
                                new ConverterTargetVmSpecHostedVmLocation();

 

     targetVMLocation.directory = "the destination directory path";

 

     return targetVMLocation;
  }


Viewing all articles
Browse latest Browse all 706

Trending Articles



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