@@ -557,4 +557,73 @@ public InfluxDB setRetentionPolicy(final String retentionPolicy) {
557
557
this .retentionPolicy = retentionPolicy ;
558
558
return this ;
559
559
}
560
+
561
+ /**
562
+ * {@inheritDoc}
563
+ */
564
+ @ Override
565
+ public void createRetentionPolicy (final String rpName , final String database , final String duration ,
566
+ final String shardDuration , final int replicationFactor , final boolean isDefault ) {
567
+ Preconditions .checkNonEmptyString (rpName , "retentionPolicyName" );
568
+ Preconditions .checkNonEmptyString (database , "database" );
569
+ Preconditions .checkNonEmptyString (duration , "retentionDuration" );
570
+ Preconditions .checkDuration (duration , "retentionDuration" );
571
+ if (shardDuration != null && !shardDuration .isEmpty ()) {
572
+ Preconditions .checkDuration (shardDuration , "shardDuration" );
573
+ }
574
+ Preconditions .checkPositiveNumber (replicationFactor , "replicationFactor" );
575
+
576
+ StringBuilder queryBuilder = new StringBuilder ("CREATE RETENTION POLICY \" " );
577
+ queryBuilder .append (rpName )
578
+ .append ("\" ON \" " )
579
+ .append (database )
580
+ .append ("\" DURATION " )
581
+ .append (duration )
582
+ .append (" REPLICATION " )
583
+ .append (replicationFactor );
584
+ if (shardDuration != null && !shardDuration .isEmpty ()) {
585
+ queryBuilder .append (" SHARD DURATION " );
586
+ queryBuilder .append (shardDuration );
587
+ }
588
+ if (isDefault ) {
589
+ queryBuilder .append (" DEFAULT" );
590
+ }
591
+ execute (this .influxDBService .postQuery (this .username , this .password , Query .encode (queryBuilder .toString ())));
592
+ }
593
+
594
+ /**
595
+ * {@inheritDoc}
596
+ */
597
+ @ Override
598
+ public void createRetentionPolicy (final String rpName , final String database , final String duration ,
599
+ final int replicationFactor , final boolean isDefault ) {
600
+ createRetentionPolicy (rpName , database , duration , null , replicationFactor , isDefault );
601
+ }
602
+
603
+ /**
604
+ * {@inheritDoc}
605
+ */
606
+ @ Override
607
+ public void createRetentionPolicy (final String rpName , final String database , final String duration ,
608
+ final String shardDuration , final int replicationFactor ) {
609
+ createRetentionPolicy (rpName , database , duration , null , replicationFactor , false );
610
+ }
611
+
612
+ /**
613
+ * {@inheritDoc}
614
+ * @param rpName the name of the retentionPolicy
615
+ * @param database the name of the database
616
+ */
617
+ @ Override
618
+ public void dropRetentionPolicy (final String rpName , final String database ) {
619
+ Preconditions .checkNonEmptyString (rpName , "retentionPolicyName" );
620
+ Preconditions .checkNonEmptyString (database , "database" );
621
+ StringBuilder queryBuilder = new StringBuilder ("DROP RETENTION POLICY \" " );
622
+ queryBuilder .append (rpName )
623
+ .append ("\" ON \" " )
624
+ .append (database )
625
+ .append ("\" " );
626
+ execute (this .influxDBService .postQuery (this .username , this .password ,
627
+ Query .encode (queryBuilder .toString ())));
628
+ }
560
629
}
0 commit comments