Quantcast
Channel: THWACK: All Content - Orion SDK
Viewing all articles
Browse latest Browse all 2677

How to ClearAlert Verb using SWIS REST/ JSON API in C#

$
0
0

This code returns the query but how can I invoke it within the queryUri? Thanks in advance.

 

    class Program

    {

        static void Main(string[] args)

        {

            ServicePointManager.ServerCertificateValidationCallback = ServerCertificateValidationCallback;

 

 

            var client = new SwisJsonClient

            {

                Hostname = "localhost",

                Username = "admin",

                Password = "mypassword"

            };

 

 

            JObject results = client.Query(@"SELECT AlertObjectID

                                    FROM Orion.AlertActive

                                    WHERE ISNULL(Acknowledged, 0) != 1

                                    ORDER BY TriggeredDateTime DESC");

                //new JObject {{"vendor", "Cisco"}});

 

 

            var rows = (JArray)results["results"];

            foreach (JObject row in rows)

            {

                Console.WriteLine("AlertObjectID={0}", row["AlertObjectID"]);

            }

        }

 

 

        private static bool ServerCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)

        {

            return true; // Trust any certificate

        }

    }

 

 

 

class SwisJsonClient

    {

        public string Hostname { get; set; }

        public string Username { get; set; }

        public string Password { get; set; }

 

 

        public JObject Query(string swql, JObject parameters = null)

        {

            var queryObject = new JObject

            {

                {"query", swql},

                {"parameters", parameters ?? new JObject()}

            };

 

 

            return GetSwisJsonResponse(queryObject, "Query");

        }

 

 

        private JObject GetSwisJsonResponse(JObject queryObject, string queryStringTail)

        {

            string queryUri = string.Format("https://{0}:17778/SolarWinds/InformationService/v3/Json/{1}", Hostname, queryStringTail);

 

 

            byte[] postData = Encoding.UTF8.GetBytes(queryObject.ToString());

 

 

            var request = WebRequest.Create(queryUri);

            request.Method = "POST";

            request.Credentials = new NetworkCredential(Username, Password);

            request.ContentType = "application/json";

            request.ContentLength = postData.Length;

            using (var postStream = request.GetRequestStream())

            {

                postStream.Write(postData, 0, postData.Length);

            }

 

 

            WebResponse response = request.GetResponse();

            using (var responseStream = response.GetResponseStream())

            using (var responseReader = new StreamReader(responseStream))

            using (var jsonReader = new JsonTextReader(responseReader))

            {

                return (JObject)JToken.ReadFrom(jsonReader);

            }

        }

    }


Viewing all articles
Browse latest Browse all 2677

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>