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  }