public bool PingPanorama(string folderPath, string username, string password) { try { var uri = PanoramaUtil.Call(ServerUri, "targetedms", folderPath, "autoQCPing", "", true); using (var webClient = new WebClient()) { webClient.Headers.Add(HttpRequestHeader.Authorization, Server.GetBasicAuthHeader(username, password)); webClient.UploadString(uri, PanoramaUtil.FORM_POST, string.Empty); } } catch (WebException ex) { var response = ex.Response as HttpWebResponse; if (response != null && response.StatusCode == HttpStatusCode.NotFound) { return(false); } else { throw; } } return(true); }
public void ValidateSettings() { if (!PublishToPanorama) { return; } if (string.IsNullOrWhiteSpace(PanoramaServerUrl)) { throw new ArgumentException("Please specify a Panorama server URL."); } try { PanoramaServerUri = new Uri(PanoramaUtil.ServerNameToUrl(PanoramaServerUrl)); } catch (UriFormatException) { throw new ArgumentException("Panorama server name is invalid."); } if (string.IsNullOrWhiteSpace(PanoramaUserEmail)) { throw new ArgumentException("Please specify a Panorama login email."); } if (string.IsNullOrWhiteSpace(PanoramaPassword)) { throw new ArgumentException("Please specify a Panorama user password."); } if (string.IsNullOrWhiteSpace(PanoramaFolder)) { throw new ArgumentException("Please specify a folder on the Panorama server."); } // Verify that we can connect to the given Panorama server with the user's credentials. var panoramaClient = new WebPanoramaClient(PanoramaServerUri); try { PanoramaUtil.VerifyServerInformation(panoramaClient, PanoramaUserEmail, PanoramaPassword); PanoramaServerUri = panoramaClient.ServerUri ?? PanoramaServerUri; PanoramaServerUrl = PanoramaServerUri.AbsoluteUri; } catch (Exception ex) { throw new ArgumentException(ex.Message); } try { PanoramaUtil.VerifyFolder(panoramaClient, new Server(PanoramaServerUri, PanoramaUserEmail, PanoramaPassword), PanoramaFolder); } catch (Exception ex) { throw new ArgumentException(ex.Message); } }
public bool PingPanorama(string folderPath, string username, string password) { try { var uri = PanoramaUtil.Call(ServerUri, "targetedms", folderPath, "autoQCPing", "", true); using (var webClient = new WebClientWithCredentials(ServerUri, username, password)) { webClient.Post(uri, null); } } catch (WebException ex) { var response = ex.Response as HttpWebResponse; if (response != null && response.StatusCode == HttpStatusCode.NotFound) { return(false); } else { throw; } } return(true); }
public UserState IsValidUser(string username, string password) { var refServerUri = ServerUri; var userState = PanoramaUtil.ValidateServerAndUser(ref refServerUri, username, password); if (userState == UserState.valid) { ServerUri = refServerUri; } return(userState); }
public void ReadXml(XmlReader reader) { PublishToPanorama = reader.GetBoolAttribute(ATTR.publish_to_panorama); PanoramaServerUrl = reader.GetAttribute(ATTR.panorama_server_url); PanoramaUserEmail = reader.GetAttribute(ATTR.panorama_user_email); PanoramaPassword = DecryptPassword(reader.GetAttribute(ATTR.panorama_user_password)); PanoramaFolder = reader.GetAttribute(ATTR.panorama_folder); if (PublishToPanorama) { PanoramaServerUri = new Uri(PanoramaUtil.ServerNameToUrl(PanoramaServerUrl)); } }
public FolderState IsValidFolder(string folderPath, string username, string password) { try { var uri = PanoramaUtil.GetContainersUri(ServerUri, folderPath, false); using (var webClient = new WebClient()) { webClient.Headers.Add(HttpRequestHeader.Authorization, Server.GetBasicAuthHeader(username, password)); var folderInfo = webClient.UploadString(uri, PanoramaUtil.FORM_POST, string.Empty); JToken response = JObject.Parse(folderInfo); // User needs write permissions to publish to the folder if (!PanoramaUtil.CheckFolderPermissions(response)) { return(FolderState.nopermission); } // User can only upload to a TargetedMS folder type. if (!PanoramaUtil.CheckFolderType(response)) { return(FolderState.notpanorama); } } } catch (WebException ex) { var response = ex.Response as HttpWebResponse; if (response != null && response.StatusCode == HttpStatusCode.NotFound) { return(FolderState.notfound); } else { throw; } } return(FolderState.valid); }
public FolderState IsValidFolder(string folderPath, string username, string password) { try { var uri = PanoramaUtil.GetContainersUri(ServerUri, folderPath, false); using (var webClient = new WebClientWithCredentials(ServerUri, username, password)) { JToken response = webClient.Get(uri); // User needs write permissions to publish to the folder if (!PanoramaUtil.CheckFolderPermissions(response)) { return(FolderState.nopermission); } // User can only upload to a TargetedMS folder type. if (!PanoramaUtil.CheckFolderType(response)) { return(FolderState.notpanorama); } } } catch (WebException ex) { var response = ex.Response as HttpWebResponse; if (response != null && response.StatusCode == HttpStatusCode.NotFound) { return(FolderState.notfound); } else { throw; } } return(FolderState.valid); }
public override bool ValidateSettings() { var panoramaSettingsUI = _appControl.GetUIPanoramaSettings(); if (!panoramaSettingsUI.PublishToPanorama) { LogOutput("Will NOT publish Skyline documents to Panorama."); Settings.PublishToPanorama = false; return(true); } LogOutput("Validating Panorama settings..."); var error = false; var panoramaUrl = panoramaSettingsUI.PanoramaServerUrl; Uri serverUri = null; if (string.IsNullOrWhiteSpace(panoramaUrl)) { LogErrorOutput("Please specify a Panorama server URL."); error = true; } else { try { serverUri = new Uri(PanoramaUtil.ServerNameToUrl(panoramaUrl)); } catch (UriFormatException) { LogError("Panorama server name is invalid."); return(false); } } var panoramaEmail = panoramaSettingsUI.PanoramaUserEmail; var panoramaPasswd = panoramaSettingsUI.PanoramaPassword; var panoramaFolder = panoramaSettingsUI.PanoramaFolder; if (string.IsNullOrWhiteSpace(panoramaEmail)) { LogErrorOutput("Please specify a Panorama login name."); error = true; } if (string.IsNullOrWhiteSpace(panoramaPasswd)) { LogErrorOutput("Please specify a Panorama user password."); error = true; } else { if (!panoramaPasswd.Equals(Settings.PanoramaPassword)) { // Encrypt the password try { panoramaPasswd = EncryptPassword(panoramaPasswd); panoramaSettingsUI.PanoramaPassword = panoramaPasswd; } catch (ObjectDisposedException) { } } } if (string.IsNullOrWhiteSpace(panoramaFolder)) { LogErrorOutput("Please specify a folder on the Panorama server."); error = true; } if (error) { return(false); } // Verify that we can connect to the given Panorama server with the user's credentials. var panoramaClient = new WebPanoramaClient(serverUri); try { PanoramaUtil.VerifyServerInformation(panoramaClient, serverUri, panoramaEmail, DecryptPassword(panoramaPasswd)); } catch (Exception ex) { LogErrorOutput(ex.Message); return(false); } try { PanoramaUtil.VerifyFolder(panoramaClient, new Server(serverUri, panoramaEmail, DecryptPassword(panoramaPasswd)), panoramaFolder); } catch (Exception ex) { LogErrorOutput(ex.Message); return(false); } PanoramaServerUri = serverUri; Settings = panoramaSettingsUI; return(true); }