/// <summary>
        /// Drops a InfluxMeasurement for a given retention policy
        /// </summary>
        /// <param name="im">An instance of IInfluxMeasurement</param>
        /// <param name="rp">An instance of IInfluxRetentionPolicy, optional</param>
        /// <returns>True: Success</returns>
        public async Task <bool> DropMeasurementAsync(IInfluxDatabase db, IInfluxMeasurement im, IInfluxRetentionPolicy rp = null)
        {
            var query = (im as InfluxMeasurement).GetDropSyntax();

            if (query != null)
            {
                var endPoint = new Dictionary <string, string>()
                {
                    { "db", db.Name }, { "q", query }
                };
                if (rp != null)
                {
                    endPoint.Add("rp", rp.Name);
                }
                var response = await GetAsync(endPoint);

                if (response.StatusCode == HttpStatusCode.OK)
                {
                    var content = await response.Content.ReadAsStringAsync();

                    if (content.Contains("error"))
                    {
                        throw new InfluxDBException("Drop Failed", new Regex(@"\""error\"":\""(.*?)\""").Match(content).Groups[1].Value);
                    }
                    (im as InfluxMeasurement).Deleted = true;
                    return(true);
                }
            }
            return(false);
        }
        /// <summary>
        /// Drops a Continuous InfluxDatabase
        /// </summary>
        /// <param name="db">An instance of InfluxDatabase</param>
        /// <returns>True: Success</returns>
        public async Task <bool> DropDatabaseAsync(IInfluxDatabase db)
        {
            var query = (db as InfluxDatabase).GetDropSyntax();

            if (query != null)
            {
                var response = await GetAsync(new Dictionary <string, string>() { { "q", query } });

                if (response.StatusCode == HttpStatusCode.OK)
                {
                    (db as InfluxDatabase).Deleted = true;
                    return(true);
                }
            }
            return(false);
        }
示例#3
0
 public NetworkService(IOptionsSnapshot <ManagementOptions> options, IInfluxDatabase influxDatabase)
 {
     _managementOptions = options.Value;
     _influxDatabase    = influxDatabase;
 }
示例#4
0
 public InfluxDBTest()
 {
     _influxDatabase = GetRequiredService <IInfluxDatabase>();
 }