public InstallationManager(string userId, ConnectionSettingsModel connectionSettings, InstallationComponentsModel installationComponents = null) { UserId = userId; ConnectionInfo = GetConnectionInfo(connectionSettings); InstallationProgress = CacheHelper.GetInstallationProgress(userId) ?? new InstallationProgressModel(); InstallationComponents = installationComponents; }
public JsonResult Connect(ConnectionSettingsModel connectionSettings) { try { InstallationComponentsModel installedComponents = null; InstallationComponentsModel selectedComponents = null; InstallationProgressModel installationProgress = null; if (connectionSettings != null) { installedComponents = SshHelper.Connect(UserId, connectionSettings); installationProgress = CacheHelper.GetInstallationProgress(UserId); selectedComponents = CacheHelper.GetSelectedComponents(UserId); CacheHelper.SetConnectionSettings(UserId, connectionSettings); CacheHelper.SetInstalledComponents(UserId, installedComponents); } else { CookieHelper.ClearCookie(); CacheHelper.ClearCache(UserId); } return Json(new { success = true, message = string.Empty, connectionSettings = GetJsonString(connectionSettings), installedComponents = GetJsonString(installedComponents), installationProgress = GetJsonString(installationProgress), selectedComponents = GetJsonString(selectedComponents) }); } catch (Exception ex) { LogManager.GetLogger("ASC").Error(ex.Message, ex); return Json(new { success = false, message = ex.Message, errorCode = GetErrorCode(ex.Message) }); } }
private static ConnectionInfo GetConnectionInfo(ConnectionSettingsModel connectionSettings) { var authenticationMethods = new List<AuthenticationMethod>(); if (!string.IsNullOrEmpty(connectionSettings.Password)) { authenticationMethods.Add(new PasswordAuthenticationMethod(connectionSettings.UserName, connectionSettings.Password)); } if (!string.IsNullOrEmpty(connectionSettings.SshKey)) { var keyFiles = new[] { new PrivateKeyFile(FileHelper.GetFile(connectionSettings.SshKey)) }; authenticationMethods.Add(new PrivateKeyAuthenticationMethod(connectionSettings.UserName, keyFiles)); } return new ConnectionInfo(connectionSettings.Host, connectionSettings.UserName, authenticationMethods.ToArray()); }
public JsonResult StartInstall(ConnectionSettingsModel connectionSettings, InstallationComponentsModel installationComponents) { try { var installedComponents = CacheHelper.GetInstalledComponents(UserId); if (installedComponents != null) return Json(new { success = false, message = OneClickHomePageResource.ExistVersionErrorText }); if (!installationComponents.CommunityServer || !installationComponents.DocumentServer) return Json(new { success = false, message = OneClickCommonResource.ErrorRequiredComponents }); if (installationComponents.MailServer && !ValidateDomainName(installationComponents.MailDomain)) return Json(new { success = false, message = OneClickJsResource.ErrorInvalidDomainName }); CacheHelper.SetSelectedComponents(UserId, installationComponents); CacheHelper.SetInstallationProgress(UserId, new InstallationProgressModel()); SshHelper.StartInstallation(UserId, connectionSettings, installationComponents); return Json(new { success = true, message = string.Empty, selectedComponents = GetJsonString(CacheHelper.GetSelectedComponents(UserId)), installationProgress = GetJsonString(CacheHelper.GetInstallationProgress(UserId)) }); } catch (Exception ex) { LogManager.GetLogger("ASC").Error(ex.Message, ex); CacheHelper.SetSelectedComponents(UserId, null); CacheHelper.SetInstallationProgress(UserId, null); return Json(new { success = false, message = ex.Message }); } }