github.com/Axway/agent-sdk@v1.1.101/pkg/config/migrationconfig.go (about) 1 package config 2 3 import "github.com/Axway/agent-sdk/pkg/cmd/properties" 4 5 // MigrationConfig - Interface for migration settings config 6 type MigrationConfig interface { 7 ShouldCleanInstances() bool 8 validate() 9 } 10 11 // MigrationSettings - 12 type MigrationSettings struct { 13 CleanInstances bool 14 } 15 16 func newMigrationConfig() MigrationConfig { 17 return &MigrationSettings{ 18 CleanInstances: false, 19 } 20 } 21 22 func newTestMigrationConfig() MigrationConfig { 23 return &MigrationSettings{ 24 CleanInstances: true, 25 } 26 } 27 28 func (m *MigrationSettings) validate() { 29 // empty implementation of interface 30 } 31 32 // ShouldCleanInstances - returns the value fo CleanInstances 33 func (m *MigrationSettings) ShouldCleanInstances() bool { 34 return m.CleanInstances 35 } 36 37 const ( 38 pathCleanInstances = "central.migration.cleanInstances" 39 ) 40 41 // AddMigrationConfigProperties - Adds the command properties needed for Migration Config 42 func AddMigrationConfigProperties(props properties.Properties) { 43 props.AddBoolProperty(pathCleanInstances, false, "Set this to clean all but latest instance, per stage, within an API Service") 44 } 45 46 // ParseMigrationConfig - Parses the Migration Config values from the command line 47 func ParseMigrationConfig(props properties.Properties) MigrationConfig { 48 migrationConfig := newMigrationConfig() 49 migrationSettings := migrationConfig.(*MigrationSettings) 50 51 migrationSettings.CleanInstances = props.BoolPropertyValue(pathCleanInstances) 52 53 return migrationSettings 54 }