public static ActionResult RegisterProvider(Session session) { ActionResult result; var methodName = MethodBase.GetCurrentMethod().Name; session.Log("{0}: BEGIN", methodName); try { var filePath = session.CustomActionData["SessionData"]; var sessionData = SessionManager.Load(filePath); session.Log("{0}: Product Version = {1}", methodName, sessionData.InstallerVersion); session.Log("{0}: VCENTERSERVER = {1}", methodName, sessionData.vCenterServer); session.Log("{0}: VCENTERUSERNAME = {1}", methodName, sessionData.vCenterUserName); session.Log("{0}: THUMBPRINT = {1}", methodName, sessionData.Certificate); var providerConfig = ConfigManager.GetConfiguration(sessionData.Application); providerConfig.Id = Host.Fqdn; providerConfig.Name = String.Format(Properties.Resource.VasaProviderNameTemplate, Host.Fqdn); if (providerConfig.Name.Length > 80) { providerConfig.Name = providerConfig.Name.Substring(0, 80); } var credentials = providerConfig.Credentials; credentials.Login = Identifier.GenerateIdentifier(6); credentials.Password = Identifier.GenerateIdentifier(8); ConfigManager.SaveConfiguration(providerConfig, sessionData.Application); var certificate = CertificateManager.GetCertificate(sessionData.Certificate, StoreName.My); var provider = (VasaProvider)RegistrationManager.RegisterProvider(providerConfig, certificate, sessionData.vCenterServer, sessionData.vCenterUserName, sessionData.vCenterPassword); session.Log("{0}: provider UniqueId: {1}", methodName, provider.UniqueId); session.Log("{0}: provider name: {1}", methodName, provider.Name); session.Log("{0}: provider description: {1}", methodName, provider.Description); session.Log("{0}: provider version: {1}", methodName, provider.Version); session.Log("{0}: provider ProviderId: {1}", methodName, provider.ProviderId); session.Log("{0}: provider url: {1}", methodName, provider.Url); sessionData.ProviderUniqueId = provider.UniqueId; sessionData.ProviderRegistered = true; SessionManager.Save(filePath, sessionData); try { SessionManager.Save(VimDataKeyName, VimDataValueName, sessionData); } catch (Exception e) { session.Log("{0}: SaveVimData failed: {1}", methodName, e.Message); } result = ActionResult.Success; } catch (Exception e) { session.Log("{0}", e); result = ActionResult.Failure; } session.Log("{0}: RESULT = {1}", methodName, result); session.Log("{0}: END", methodName); return(result); }