示例#1
0
        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));
            }
        }
示例#2
0
        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\"");
            }
        }