Exemple #1
0
 public bool DropRetentionPolicy(InfluxRetentionPolicy p)
 {
     if (String.IsNullOrWhiteSpace(p.Database))
     {
         throw new Exception("Missing database");
     }
     ExecutePostQuery(p.ToDropStatement(), null);
     return(true);
 }
Exemple #2
0
        public IDictionary <String, InfluxRetentionPolicy> ShowRetentionPolicies(string db)
        {
            HttpWebRequest req = GetWebRequest("query?q=SHOW RETENTION POLICIES on " + db);

            req.Method = "GET";

            Dictionary <string, InfluxRetentionPolicy> policies = new Dictionary <string, InfluxRetentionPolicy>();

            using (HttpWebResponse res = req.GetResponse() as HttpWebResponse)
            {
                JsonTextReader reader = new JsonTextReader(
                    new StreamReader(res.GetResponseStream()));

                JObject results = (JObject)((JArray)JObject.Load(reader).GetValue("results")).First;
                JArray  series  = (JArray)results.GetValue("series");
                if (series != null)
                {
                    foreach (JToken t in series)
                    {
                        JObject dbqs   = (JObject)t;
                        JArray  values = dbqs.GetValue("values") as JArray;
                        if (values != null && values.Count > 0)
                        {
                            foreach (JToken v in values)
                            {
                                JArray aa = v as JArray;
                                InfluxRetentionPolicy q = new InfluxRetentionPolicy();
                                q.Database       = db;
                                q.Name           = v[0].Value <string>();
                                q.Duration       = v[1].Value <string>();
                                q.IsDefault      = v[4].Value <bool>();
                                policies[q.Name] = q;
                            }
                        }
                    }
                }
            }
            return(policies);
        }