func()

in internal/sqlservermetrics/migration/migration.go [93:142]


func (m *migration) Migrate(backCfg *sqlserverpb.Configuration, config *configpb.Configuration) {
	config.LogLevel = m.logLevel(backCfg.GetLogLevel())
	config.LogToCloud = proto.Bool(backCfg.GetLogToCloud())
	config.AgentProperties = &configpb.AgentProperties{
		LogUsageMetrics: !backCfg.GetDisableLogUsage(),
	}
	config.SqlserverConfiguration = &configpb.SQLServerConfiguration{
		Enabled:                 proto.Bool(true),
		CollectionConfiguration: m.collectionConfiguration(backCfg.GetCollectionConfiguration()),
		CollectionTimeout:       durationpb.New(time.Duration(backCfg.GetCollectionTimeoutSeconds()) * time.Second),
		MaxRetries:              int32(backCfg.GetMaxRetries()),
		RetryFrequency:          durationpb.New(time.Duration(backCfg.GetRetryIntervalInSeconds()) * time.Second),
		RemoteCollection:        backCfg.GetRemoteCollection(),
	}
	credentialConfigrations := []*configpb.SQLServerConfiguration_CredentialConfiguration{}
	for _, credCfg := range backCfg.GetCredentialConfiguration() {
		c := &configpb.SQLServerConfiguration_CredentialConfiguration{}

		connectionParameters := []*configpb.ConnectionParameters{}
		for _, sqlCfg := range credCfg.GetSqlConfigurations() {
			connectionParameters = append(connectionParameters, m.sql(sqlCfg))
		}
		c.ConnectionParameters = connectionParameters

		switch credCfg.GetGuestConfigurations().(type) {
		case *sqlserverpb.CredentialConfiguration_LocalCollection:
			c.GuestConfigurations = &configpb.SQLServerConfiguration_CredentialConfiguration_LocalCollection{
				LocalCollection: credCfg.GetLocalCollection(),
			}
		case *sqlserverpb.CredentialConfiguration_RemoteWin:
			c.GuestConfigurations = &configpb.SQLServerConfiguration_CredentialConfiguration_RemoteWin{
				RemoteWin: m.guestRemoteWin(credCfg.GetRemoteWin()),
			}
			c.VmProperties = &configpb.CloudProperties{
				InstanceName: credCfg.GetInstanceName(),
				InstanceId:   credCfg.GetInstanceId(),
			}
		case *sqlserverpb.CredentialConfiguration_RemoteLinux:
			c.GuestConfigurations = &configpb.SQLServerConfiguration_CredentialConfiguration_RemoteLinux{
				RemoteLinux: m.guestRemoteLinux(credCfg.GetRemoteLinux()),
			}
			c.VmProperties = &configpb.CloudProperties{
				InstanceName: credCfg.GetInstanceName(),
				InstanceId:   credCfg.GetInstanceId(),
			}
		}
		credentialConfigrations = append(credentialConfigrations, c)
	}
	config.SqlserverConfiguration.CredentialConfigurations = credentialConfigrations
}