private static void setSnapshotInfo ( Catalog catalog , SnapshotType snapshotSettings ) { Database db = catalog . getClusters ( ) . get ( "cluster" ) . getDatabases ( ) . get ( "database" ) ; SnapshotSchedule schedule = db . getSnapshotschedule ( ) . get ( "default" ) ; if ( schedule == null ) { schedule = db . getSnapshotschedule ( ) . add ( "default" ) ; } schedule . setEnabled ( snapshotSettings . isEnabled ( ) ) ; String frequency = snapshotSettings . getFrequency ( ) ; if ( ! frequency . endsWith ( "s" ) && ! frequency . endsWith ( "m" ) && ! frequency . endsWith ( "h" ) ) { hostLog . error ( "Snapshot frequency " + frequency + " needs to end with time unit specified" + " that is one of [s, m, h] (seconds, minutes, hours)" + " Defaulting snapshot frequency to 10m." ) ; frequency = "10m" ; } int frequencyInt = 0 ; String frequencySubstring = frequency . substring ( 0 , frequency . length ( ) - 1 ) ; try { frequencyInt = Integer . parseInt ( frequencySubstring ) ; } catch ( Exception e ) { hostLog . error ( "Frequency " + frequencySubstring + " is not an integer. Defaulting frequency to 10m." ) ; frequency = "10m" ; frequencyInt = 10 ; } String prefix = snapshotSettings . getPrefix ( ) ; if ( prefix == null || prefix . isEmpty ( ) ) { hostLog . error ( "Snapshot prefix " + prefix + " is not a valid prefix. Using prefix of 'SNAPSHOTNONCE' " ) ; prefix = "SNAPSHOTNONCE" ; } if ( prefix . contains ( "-" ) || prefix . contains ( "," ) ) { String oldprefix = prefix ; prefix = prefix . replaceAll ( "-" , "_" ) ; prefix = prefix . replaceAll ( "," , "_" ) ; hostLog . error ( "Snapshot prefix " + oldprefix + " cannot include , or -." + " Using the prefix: " + prefix + " instead." ) ; } int retain = snapshotSettings . getRetain ( ) ; if ( retain < 1 ) { hostLog . error ( "Snapshot retain value " + retain + " is not a valid value. Must be 1 or greater." + " Defaulting snapshot retain to 1." ) ; retain = 1 ; } schedule . setFrequencyunit ( frequency . substring ( frequency . length ( ) - 1 , frequency . length ( ) ) ) ; schedule . setFrequencyvalue ( frequencyInt ) ; schedule . setPrefix ( prefix ) ; schedule . setRetain ( retain ) ; }
Set the auto - snapshot settings in the catalog from the deployment file