public static string GetQueryForCurlBash(string query, ConnectionInfo connection, PropertyBag parameters) { string creds = $"{connection.UserName}:{connection.Password}"; var url = GetUrlForQuery(query, connection); Func <string, string> q = QuoteForBash; if (!parameters.Any()) { return($"curl -k -u {QuoteForBash(creds)} {QuoteForBash(url)}"); } else { return(GetQueryForCurlCmd(query, connection, parameters)); } }
public static string GetQueryForCurlCmd(string query, ConnectionInfo connection, PropertyBag parameters) { string creds = QuoteForCmd($"{connection.UserName}:{connection.Password}"); if (!parameters.Any()) { return($"curl.exe -k -u {creds} {GetUrlForQuery(query, connection)}"); } else { var escapedQuery = CollapseWhitespace(query); var postUrl = $"https://{connection.Server}:17778/SolarWinds/InformationService/v3/Json/Query"; var parametersSerialized = string.Join( ",", parameters.Select(x => string.Format("\"{0}\" : \"{1}\"", x.Key, x.Value.ToString()))); var postData = $"{{ \"query\": \"{escapedQuery}\", \"parameters\": {{{parametersSerialized}}}".Replace("\"", "\\\""); return($"curl -X POST -d \"{postData}}}\" {postUrl} --insecure -u {creds} --header \"Content-Type:application/json\""); } }