Example #1
0
 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);
     }
 }
Example #2
0
        /// <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);
            }
        }