public Vapp InstantiateVappTemplate( InstantiateVAppTemplateParamsType instVappTemplParamsType) { try { return(new Vapp(this.VcloudClient, SdkUtil.Post <VAppType>(this.VcloudClient, this.Reference.href + "/action/instantiateVAppTemplate", SerializationUtil.SerializeObject <InstantiateVAppTemplateParamsType>(instVappTemplParamsType, "com.vmware.vcloud.api.rest.schema"), "application/vnd.vmware.vcloud.instantiateVAppTemplateParams+xml", 201))); } catch (Exception ex) { throw new VCloudException(ex.Message); } }
/// <summary> /// Create vApp from template async /// </summary> /// <param name="organizationName"></param> /// <param name="vdcName"></param> /// <param name="vAppTempateName"></param> /// <param name="vAppName"></param> /// <returns></returns> public Vapp CreateVappFromTemplateeAsync(string organizationName, string vdcName, string vAppTempateName, string vAppName) { Log.logger.Debug(string.Format("create vApp: {0} from template {1}", vAppName, vAppTempateName)); Vdc vdc = GetVdc(organizationName, vdcName); if (vdc == null) { Log.logger.Warn(string.Format("VDC:{0} not found", vdcName)); return null; } VappTemplate vAppTemplate = GetVappTemplateByName(organizationName, vdcName, vAppTempateName); if (vAppTemplate == null) { Log.logger.Warn(string.Format("TEMPLATE:{0} not found", vAppTempateName)); return null; } try { // create vApp InstantiationParamsType instantiationParams = new InstantiationParamsType(); List<Section_Type> sections = new List<Section_Type>(); instantiationParams.Items = sections.ToArray(); // create the request body (InstantiateVAppTemplateParams) InstantiateVAppTemplateParamsType instVappTemplParams = new InstantiateVAppTemplateParamsType(); instVappTemplParams.name = vAppName; instVappTemplParams.Source = vAppTemplate.Reference; instVappTemplParams.InstantiationParams = instantiationParams; mutex.WaitOne(); Vapp app = vdc.InstantiateVappTemplate(instVappTemplParams); System.Threading.Thread.Sleep(1000 * 5); mutex.ReleaseMutex(); return app; } catch (Exception e) { Log.logger.Error(e.Message + e.StackTrace + e.Data); throw new EnvironmentException(VCLOUD, e.Message, e); } }