Fix cloning of variables with independent copy

This commit is contained in:
gezimbll
2023-05-23 08:39:28 -04:00
committed by Dan Christian Bogos
parent f2201f3e62
commit b95555a18b
8 changed files with 244 additions and 122 deletions

View File

@@ -218,7 +218,8 @@ func (attrOpts *AttributesOpts) Clone() *AttributesOpts {
ProcessRuns: attrOpts.ProcessRuns,
}
if attrOpts.Context != nil {
cln.Context = utils.StringPointer(*attrOpts.Context)
cln.Context = new(string)
*cln.Context = *attrOpts.Context
}
return cln
}

View File

@@ -522,152 +522,200 @@ func (eeC *EventExporterCfg) TrailerFields() []*FCTemplate {
func (eeOpts *EventExporterOpts) Clone() *EventExporterOpts {
cln := &EventExporterOpts{}
if eeOpts.CSVFieldSeparator != nil {
cln.CSVFieldSeparator = utils.StringPointer(*eeOpts.CSVFieldSeparator)
cln.CSVFieldSeparator = new(string)
*cln.CSVFieldSeparator = *eeOpts.CSVFieldSeparator
}
if eeOpts.ElsIndex != nil {
cln.ElsIndex = utils.StringPointer(*eeOpts.ElsIndex)
cln.ElsIndex = new(string)
*cln.ElsIndex = *eeOpts.ElsIndex
}
if eeOpts.ElsIfPrimaryTerm != nil {
cln.ElsIfPrimaryTerm = utils.IntPointer(*eeOpts.ElsIfPrimaryTerm)
cln.ElsIfPrimaryTerm = new(int)
*cln.ElsIfPrimaryTerm = *eeOpts.ElsIfPrimaryTerm
}
if eeOpts.ElsIfSeqNo != nil {
cln.ElsIfSeqNo = utils.IntPointer(*eeOpts.ElsIfSeqNo)
cln.ElsIfSeqNo = new(int)
*cln.ElsIfSeqNo = *eeOpts.ElsIfSeqNo
}
if eeOpts.ElsOpType != nil {
cln.ElsOpType = utils.StringPointer(*eeOpts.ElsOpType)
cln.ElsOpType = new(string)
*cln.ElsOpType = *eeOpts.ElsOpType
}
if eeOpts.ElsPipeline != nil {
cln.ElsPipeline = utils.StringPointer(*eeOpts.ElsPipeline)
cln.ElsPipeline = new(string)
*cln.ElsPipeline = *eeOpts.ElsPipeline
}
if eeOpts.ElsRouting != nil {
cln.ElsRouting = utils.StringPointer(*eeOpts.ElsRouting)
cln.ElsRouting = new(string)
*cln.ElsRouting = *eeOpts.ElsRouting
}
if eeOpts.ElsTimeout != nil {
cln.ElsTimeout = utils.DurationPointer(*eeOpts.ElsTimeout)
cln.ElsTimeout = new(time.Duration)
*cln.ElsTimeout = *eeOpts.ElsTimeout
}
if eeOpts.ElsVersion != nil {
cln.ElsVersion = utils.IntPointer(*eeOpts.ElsVersion)
cln.ElsVersion = new(int)
*cln.ElsVersion = *eeOpts.ElsVersion
}
if eeOpts.ElsVersionType != nil {
cln.ElsVersionType = utils.StringPointer(*eeOpts.ElsVersionType)
cln.ElsVersionType = new(string)
*cln.ElsVersionType = *eeOpts.ElsVersionType
}
if eeOpts.ElsWaitForActiveShards != nil {
cln.ElsWaitForActiveShards = utils.StringPointer(*eeOpts.ElsWaitForActiveShards)
cln.ElsWaitForActiveShards = new(string)
*cln.ElsWaitForActiveShards = *eeOpts.ElsWaitForActiveShards
}
if eeOpts.SQLMaxIdleConns != nil {
cln.SQLMaxIdleConns = utils.IntPointer(*eeOpts.SQLMaxIdleConns)
cln.SQLMaxIdleConns = new(int)
*cln.SQLMaxIdleConns = *eeOpts.SQLMaxIdleConns
}
if eeOpts.SQLMaxOpenConns != nil {
cln.SQLMaxOpenConns = utils.IntPointer(*eeOpts.SQLMaxOpenConns)
cln.SQLMaxOpenConns = new(int)
*cln.SQLMaxOpenConns = *eeOpts.SQLMaxOpenConns
}
if eeOpts.SQLConnMaxLifetime != nil {
cln.SQLConnMaxLifetime = utils.DurationPointer(*eeOpts.SQLConnMaxLifetime)
cln.SQLConnMaxLifetime = new(time.Duration)
*cln.SQLConnMaxLifetime = *eeOpts.SQLConnMaxLifetime
}
if eeOpts.MYSQLDSNParams != nil {
cln.MYSQLDSNParams = make(map[string]string)
cln.MYSQLDSNParams = eeOpts.MYSQLDSNParams
}
if eeOpts.SQLTableName != nil {
cln.SQLTableName = utils.StringPointer(*eeOpts.SQLTableName)
cln.SQLTableName = new(string)
*cln.SQLTableName = *eeOpts.SQLTableName
}
if eeOpts.SQLDBName != nil {
cln.SQLDBName = utils.StringPointer(*eeOpts.SQLDBName)
cln.SQLDBName = new(string)
*cln.SQLDBName = *eeOpts.SQLDBName
}
if eeOpts.PgSSLMode != nil {
cln.PgSSLMode = utils.StringPointer(*eeOpts.PgSSLMode)
cln.PgSSLMode = new(string)
*cln.PgSSLMode = *eeOpts.PgSSLMode
}
if eeOpts.KafkaTopic != nil {
cln.KafkaTopic = utils.StringPointer(*eeOpts.KafkaTopic)
cln.KafkaTopic = new(string)
*cln.KafkaTopic = *eeOpts.KafkaTopic
}
if eeOpts.AMQPQueueID != nil {
cln.AMQPQueueID = utils.StringPointer(*eeOpts.AMQPQueueID)
cln.AMQPQueueID = new(string)
*cln.AMQPQueueID = *eeOpts.AMQPQueueID
}
if eeOpts.AMQPRoutingKey != nil {
cln.AMQPRoutingKey = utils.StringPointer(*eeOpts.AMQPRoutingKey)
cln.AMQPRoutingKey = new(string)
*cln.AMQPRoutingKey = *eeOpts.AMQPRoutingKey
}
if eeOpts.AMQPExchange != nil {
cln.AMQPExchange = utils.StringPointer(*eeOpts.AMQPExchange)
cln.AMQPExchange = new(string)
*cln.AMQPExchange = *eeOpts.AMQPExchange
}
if eeOpts.AMQPExchangeType != nil {
cln.AMQPExchangeType = utils.StringPointer(*eeOpts.AMQPExchangeType)
cln.AMQPExchangeType = new(string)
*cln.AMQPExchangeType = *eeOpts.AMQPExchangeType
}
if eeOpts.AMQPUsername != nil {
cln.AMQPUsername = utils.StringPointer(*eeOpts.AMQPUsername)
cln.AMQPUsername = new(string)
*cln.AMQPUsername = *eeOpts.AMQPUsername
}
if eeOpts.AMQPPassword != nil {
cln.AMQPPassword = utils.StringPointer(*eeOpts.AMQPPassword)
cln.AMQPPassword = new(string)
*cln.AMQPPassword = *eeOpts.AMQPPassword
}
if eeOpts.AWSRegion != nil {
cln.AWSRegion = utils.StringPointer(*eeOpts.AWSRegion)
cln.AWSRegion = new(string)
*cln.AWSRegion = *eeOpts.AWSRegion
}
if eeOpts.AWSKey != nil {
cln.AWSKey = utils.StringPointer(*eeOpts.AWSKey)
cln.AWSKey = new(string)
*cln.AWSKey = *eeOpts.AWSKey
}
if eeOpts.AWSSecret != nil {
cln.AWSSecret = utils.StringPointer(*eeOpts.AWSSecret)
cln.AWSSecret = new(string)
*cln.AWSSecret = *eeOpts.AWSSecret
}
if eeOpts.AWSToken != nil {
cln.AWSToken = utils.StringPointer(*eeOpts.AWSToken)
cln.AWSToken = new(string)
*cln.AWSToken = *eeOpts.AWSToken
}
if eeOpts.SQSQueueID != nil {
cln.SQSQueueID = utils.StringPointer(*eeOpts.SQSQueueID)
cln.SQSQueueID = new(string)
*cln.SQSQueueID = *eeOpts.SQSQueueID
}
if eeOpts.S3BucketID != nil {
cln.S3BucketID = utils.StringPointer(*eeOpts.S3BucketID)
cln.S3BucketID = new(string)
*cln.S3BucketID = *eeOpts.S3BucketID
}
if eeOpts.S3FolderPath != nil {
cln.S3FolderPath = utils.StringPointer(*eeOpts.S3FolderPath)
cln.S3FolderPath = new(string)
*cln.S3FolderPath = *eeOpts.S3FolderPath
}
if eeOpts.NATSJetStream != nil {
cln.NATSJetStream = utils.BoolPointer(*eeOpts.NATSJetStream)
cln.NATSJetStream = new(bool)
*cln.NATSJetStream = *eeOpts.NATSJetStream
}
if eeOpts.NATSSubject != nil {
cln.NATSSubject = utils.StringPointer(*eeOpts.NATSSubject)
cln.NATSSubject = new(string)
*cln.NATSSubject = *eeOpts.NATSSubject
}
if eeOpts.NATSJWTFile != nil {
cln.NATSJWTFile = utils.StringPointer(*eeOpts.NATSJWTFile)
cln.NATSJWTFile = new(string)
*cln.NATSJWTFile = *eeOpts.NATSJWTFile
}
if eeOpts.NATSSeedFile != nil {
cln.NATSSeedFile = utils.StringPointer(*eeOpts.NATSSeedFile)
cln.NATSSeedFile = new(string)
*cln.NATSSeedFile = *eeOpts.NATSSeedFile
}
if eeOpts.NATSCertificateAuthority != nil {
cln.NATSCertificateAuthority = utils.StringPointer(*eeOpts.NATSCertificateAuthority)
cln.NATSCertificateAuthority = new(string)
*cln.NATSCertificateAuthority = *eeOpts.NATSCertificateAuthority
}
if eeOpts.NATSClientCertificate != nil {
cln.NATSClientCertificate = utils.StringPointer(*eeOpts.NATSClientCertificate)
cln.NATSClientCertificate = new(string)
*cln.NATSClientCertificate = *eeOpts.NATSClientCertificate
}
if eeOpts.NATSClientKey != nil {
cln.NATSClientKey = utils.StringPointer(*eeOpts.NATSClientKey)
cln.NATSClientKey = new(string)
*cln.NATSClientKey = *eeOpts.NATSClientKey
}
if eeOpts.NATSJetStreamMaxWait != nil {
cln.NATSJetStreamMaxWait = utils.DurationPointer(*eeOpts.NATSJetStreamMaxWait)
cln.NATSJetStreamMaxWait = new(time.Duration)
*cln.NATSJetStreamMaxWait = *eeOpts.NATSJetStreamMaxWait
}
if eeOpts.RPCCodec != nil {
cln.RPCCodec = utils.StringPointer(*eeOpts.RPCCodec)
cln.RPCCodec = new(string)
*cln.RPCCodec = *eeOpts.RPCCodec
}
if eeOpts.ServiceMethod != nil {
cln.ServiceMethod = utils.StringPointer(*eeOpts.ServiceMethod)
cln.ServiceMethod = new(string)
*cln.ServiceMethod = *eeOpts.ServiceMethod
}
if eeOpts.KeyPath != nil {
cln.KeyPath = utils.StringPointer(*eeOpts.KeyPath)
cln.KeyPath = new(string)
*cln.KeyPath = *eeOpts.KeyPath
}
if eeOpts.CertPath != nil {
cln.CertPath = utils.StringPointer(*eeOpts.CertPath)
cln.CertPath = new(string)
*cln.CertPath = *eeOpts.CertPath
}
if eeOpts.CAPath != nil {
cln.CAPath = utils.StringPointer(*eeOpts.CAPath)
cln.CAPath = new(string)
*cln.CAPath = *eeOpts.CAPath
}
if eeOpts.TLS != nil {
cln.TLS = utils.BoolPointer(*eeOpts.TLS)
cln.TLS = new(bool)
*cln.TLS = *eeOpts.TLS
}
if eeOpts.ConnIDs != nil {
cln.ConnIDs = utils.SliceStringPointer(*eeOpts.ConnIDs)
cln.ConnIDs = new([]string)
*cln.ConnIDs = *eeOpts.ConnIDs
}
if eeOpts.RPCConnTimeout != nil {
cln.RPCConnTimeout = utils.DurationPointer(*eeOpts.RPCConnTimeout)
cln.RPCConnTimeout = new(time.Duration)
*cln.RPCConnTimeout = *eeOpts.RPCConnTimeout
}
if eeOpts.RPCReplyTimeout != nil {
cln.RPCReplyTimeout = utils.DurationPointer(*eeOpts.RPCReplyTimeout)
cln.RPCReplyTimeout = new(time.Duration)
*cln.RPCReplyTimeout = *eeOpts.RPCReplyTimeout
}
if eeOpts.RPCAPIOpts != nil {
cln.RPCAPIOpts = make(map[string]interface{})

View File

@@ -507,193 +507,256 @@ func (er *EventReaderCfg) loadFromJSONCfg(jsnCfg *EventReaderJsonCfg, msgTemplat
func (erOpts *EventReaderOpts) Clone() *EventReaderOpts {
cln := &EventReaderOpts{}
if erOpts.PartialPath != nil {
cln.PartialPath = utils.StringPointer(*erOpts.PartialPath)
cln.PartialPath = new(string)
*cln.PartialPath = *erOpts.PartialPath
}
if erOpts.PartialCacheAction != nil {
cln.PartialCacheAction = utils.StringPointer(*erOpts.PartialCacheAction)
cln.PartialCacheAction = new(string)
*cln.PartialCacheAction = *erOpts.PartialCacheAction
}
if erOpts.PartialOrderField != nil {
cln.PartialOrderField = utils.StringPointer(*erOpts.PartialOrderField)
cln.PartialOrderField = new(string)
*cln.PartialOrderField = *erOpts.PartialOrderField
}
if erOpts.PartialCSVFieldSeparator != nil {
cln.PartialCSVFieldSeparator = utils.StringPointer(*erOpts.PartialCSVFieldSeparator)
cln.PartialCSVFieldSeparator = new(string)
*cln.PartialCSVFieldSeparator = *erOpts.PartialCSVFieldSeparator
}
if erOpts.CSVRowLength != nil {
cln.CSVRowLength = utils.IntPointer(*erOpts.CSVRowLength)
cln.CSVRowLength = new(int)
*cln.CSVRowLength = *erOpts.CSVRowLength
}
if erOpts.CSVFieldSeparator != nil {
cln.CSVFieldSeparator = utils.StringPointer(*erOpts.CSVFieldSeparator)
cln.CSVFieldSeparator = new(string)
*cln.CSVFieldSeparator = *erOpts.CSVFieldSeparator
}
if erOpts.CSVHeaderDefineChar != nil {
cln.CSVHeaderDefineChar = utils.StringPointer(*erOpts.CSVHeaderDefineChar)
cln.CSVHeaderDefineChar = new(string)
*cln.CSVHeaderDefineChar = *erOpts.CSVHeaderDefineChar
}
if erOpts.CSVLazyQuotes != nil {
cln.CSVLazyQuotes = utils.BoolPointer(*erOpts.CSVLazyQuotes)
cln.CSVLazyQuotes = new(bool)
*cln.CSVLazyQuotes = *erOpts.CSVLazyQuotes
}
if erOpts.XMLRootPath != nil {
cln.XMLRootPath = utils.StringPointer(*erOpts.XMLRootPath)
cln.XMLRootPath = new(string)
*cln.XMLRootPath = *erOpts.XMLRootPath
}
if erOpts.AMQPQueueID != nil {
cln.AMQPQueueID = utils.StringPointer(*erOpts.AMQPQueueID)
cln.AMQPQueueID = new(string)
*cln.AMQPQueueID = *erOpts.AMQPQueueID
}
if erOpts.AMQPQueueIDProcessed != nil {
cln.AMQPQueueIDProcessed = utils.StringPointer(*erOpts.AMQPQueueIDProcessed)
cln.AMQPQueueIDProcessed = new(string)
*cln.AMQPQueueIDProcessed = *erOpts.AMQPQueueIDProcessed
}
if erOpts.AMQPUsername != nil {
cln.AMQPUsername = utils.StringPointer(*erOpts.AMQPUsername)
cln.AMQPUsername = new(string)
*cln.AMQPUsername = *erOpts.AMQPUsername
}
if erOpts.AMQPPassword != nil {
cln.AMQPPassword = utils.StringPointer(*erOpts.AMQPPassword)
cln.AMQPPassword = new(string)
*cln.AMQPPassword = *erOpts.AMQPPassword
}
if erOpts.AMQPUsernameProcessed != nil {
cln.AMQPUsernameProcessed = utils.StringPointer(*erOpts.AMQPUsernameProcessed)
cln.AMQPUsernameProcessed = new(string)
*cln.AMQPUsernameProcessed = *erOpts.AMQPUsernameProcessed
}
if erOpts.AMQPPasswordProcessed != nil {
cln.AMQPPasswordProcessed = utils.StringPointer(*erOpts.AMQPPasswordProcessed)
cln.AMQPPasswordProcessed = new(string)
*cln.AMQPPasswordProcessed = *erOpts.AMQPPasswordProcessed
}
if erOpts.AMQPConsumerTag != nil {
cln.AMQPConsumerTag = utils.StringPointer(*erOpts.AMQPConsumerTag)
cln.AMQPConsumerTag = new(string)
*cln.AMQPConsumerTag = *erOpts.AMQPConsumerTag
}
if erOpts.AMQPExchange != nil {
cln.AMQPExchange = utils.StringPointer(*erOpts.AMQPExchange)
cln.AMQPExchange = new(string)
*cln.AMQPExchange = *erOpts.AMQPExchange
}
if erOpts.AMQPExchangeType != nil {
cln.AMQPExchangeType = utils.StringPointer(*erOpts.AMQPExchangeType)
cln.AMQPExchangeType = new(string)
*cln.AMQPExchangeType = *erOpts.AMQPExchangeType
}
if erOpts.AMQPRoutingKey != nil {
cln.AMQPRoutingKey = utils.StringPointer(*erOpts.AMQPRoutingKey)
cln.AMQPRoutingKey = new(string)
*cln.AMQPRoutingKey = *erOpts.AMQPRoutingKey
}
if erOpts.AMQPExchangeProcessed != nil {
cln.AMQPExchangeProcessed = utils.StringPointer(*erOpts.AMQPExchangeProcessed)
cln.AMQPExchangeProcessed = new(string)
*cln.AMQPExchangeProcessed = *erOpts.AMQPExchangeProcessed
}
if erOpts.AMQPExchangeTypeProcessed != nil {
cln.AMQPExchangeTypeProcessed = utils.StringPointer(*erOpts.AMQPExchangeTypeProcessed)
cln.AMQPExchangeTypeProcessed = new(string)
*cln.AMQPExchangeTypeProcessed = *erOpts.AMQPExchangeTypeProcessed
}
if erOpts.AMQPRoutingKeyProcessed != nil {
cln.AMQPRoutingKeyProcessed = utils.StringPointer(*erOpts.AMQPRoutingKeyProcessed)
cln.AMQPRoutingKeyProcessed = new(string)
*cln.AMQPRoutingKeyProcessed = *erOpts.AMQPRoutingKeyProcessed
}
if erOpts.KafkaTopic != nil {
cln.KafkaTopic = utils.StringPointer(*erOpts.KafkaTopic)
cln.KafkaTopic = new(string)
*cln.KafkaTopic = *erOpts.KafkaTopic
}
if erOpts.KafkaGroupID != nil {
cln.KafkaGroupID = utils.StringPointer(*erOpts.KafkaGroupID)
cln.KafkaGroupID = new(string)
*cln.KafkaGroupID = *erOpts.KafkaGroupID
}
if erOpts.KafkaMaxWait != nil {
cln.KafkaMaxWait = utils.DurationPointer(*erOpts.KafkaMaxWait)
cln.KafkaMaxWait = new(time.Duration)
*cln.KafkaMaxWait = *erOpts.KafkaMaxWait
}
if erOpts.KafkaTopicProcessed != nil {
cln.KafkaTopicProcessed = utils.StringPointer(*erOpts.KafkaTopicProcessed)
cln.KafkaTopicProcessed = new(string)
*cln.KafkaTopicProcessed = *erOpts.KafkaTopicProcessed
}
if erOpts.SQLDBName != nil {
cln.SQLDBName = utils.StringPointer(*erOpts.SQLDBName)
cln.SQLDBName = new(string)
*cln.SQLDBName = *erOpts.SQLDBName
}
if erOpts.SQLTableName != nil {
cln.SQLTableName = utils.StringPointer(*erOpts.SQLTableName)
cln.SQLTableName = new(string)
*cln.SQLTableName = *erOpts.SQLTableName
}
if erOpts.PgSSLMode != nil {
cln.PgSSLMode = utils.StringPointer(*erOpts.PgSSLMode)
cln.PgSSLMode = new(string)
*cln.PgSSLMode = *erOpts.PgSSLMode
}
if erOpts.SQLDBNameProcessed != nil {
cln.SQLDBNameProcessed = utils.StringPointer(*erOpts.SQLDBNameProcessed)
cln.SQLDBNameProcessed = new(string)
*cln.SQLDBNameProcessed = *erOpts.SQLDBNameProcessed
}
if erOpts.SQLTableNameProcessed != nil {
cln.SQLTableNameProcessed = utils.StringPointer(*erOpts.SQLTableNameProcessed)
cln.SQLTableNameProcessed = new(string)
*cln.SQLTableNameProcessed = *erOpts.SQLTableNameProcessed
}
if erOpts.PgSSLModeProcessed != nil {
cln.PgSSLModeProcessed = utils.StringPointer(*erOpts.PgSSLModeProcessed)
cln.PgSSLModeProcessed = new(string)
*cln.PgSSLModeProcessed = *erOpts.PgSSLModeProcessed
}
if erOpts.AWSRegion != nil {
cln.AWSRegion = utils.StringPointer(*erOpts.AWSRegion)
cln.AWSRegion = new(string)
*cln.AWSRegion = *erOpts.AWSRegion
}
if erOpts.AWSKey != nil {
cln.AWSKey = utils.StringPointer(*erOpts.AWSKey)
cln.AWSKey = new(string)
*cln.AWSKey = *erOpts.AWSKey
}
if erOpts.AWSSecret != nil {
cln.AWSSecret = utils.StringPointer(*erOpts.AWSSecret)
cln.AWSSecret = new(string)
*cln.AWSSecret = *erOpts.AWSSecret
}
if erOpts.AWSToken != nil {
cln.AWSToken = utils.StringPointer(*erOpts.AWSToken)
cln.AWSToken = new(string)
*cln.AWSToken = *erOpts.AWSToken
}
if erOpts.AWSRegionProcessed != nil {
cln.AWSRegionProcessed = utils.StringPointer(*erOpts.AWSRegionProcessed)
cln.AWSRegionProcessed = new(string)
*cln.AWSRegionProcessed = *erOpts.AWSRegionProcessed
}
if erOpts.AWSKeyProcessed != nil {
cln.AWSKeyProcessed = utils.StringPointer(*erOpts.AWSKeyProcessed)
cln.AWSKeyProcessed = new(string)
*cln.AWSKeyProcessed = *erOpts.AWSKeyProcessed
}
if erOpts.AWSSecretProcessed != nil {
cln.AWSSecretProcessed = utils.StringPointer(*erOpts.AWSSecretProcessed)
cln.AWSSecretProcessed = new(string)
*cln.AWSSecretProcessed = *erOpts.AWSSecretProcessed
}
if erOpts.AWSTokenProcessed != nil {
cln.AWSTokenProcessed = utils.StringPointer(*erOpts.AWSTokenProcessed)
cln.AWSTokenProcessed = new(string)
*cln.AWSTokenProcessed = *erOpts.AWSTokenProcessed
}
if erOpts.SQSQueueID != nil {
cln.SQSQueueID = utils.StringPointer(*erOpts.SQSQueueID)
cln.SQSQueueID = new(string)
*cln.SQSQueueID = *erOpts.SQSQueueID
}
if erOpts.SQSQueueIDProcessed != nil {
cln.SQSQueueIDProcessed = utils.StringPointer(*erOpts.SQSQueueIDProcessed)
cln.SQSQueueIDProcessed = new(string)
*cln.SQSQueueIDProcessed = *erOpts.SQSQueueIDProcessed
}
if erOpts.S3BucketID != nil {
cln.S3BucketID = utils.StringPointer(*erOpts.S3BucketID)
cln.S3BucketID = new(string)
*cln.S3BucketID = *erOpts.S3BucketID
}
if erOpts.S3FolderPathProcessed != nil {
cln.S3FolderPathProcessed = utils.StringPointer(*erOpts.S3FolderPathProcessed)
cln.S3FolderPathProcessed = new(string)
*cln.S3FolderPathProcessed = *erOpts.S3FolderPathProcessed
}
if erOpts.S3BucketIDProcessed != nil {
cln.S3BucketIDProcessed = utils.StringPointer(*erOpts.S3BucketIDProcessed)
cln.S3BucketIDProcessed = new(string)
*cln.S3BucketIDProcessed = *erOpts.S3BucketIDProcessed
}
if erOpts.NATSJetStream != nil {
cln.NATSJetStream = utils.BoolPointer(*erOpts.NATSJetStream)
cln.NATSJetStream = new(bool)
*cln.NATSJetStream = *erOpts.NATSJetStream
}
if erOpts.NATSConsumerName != nil {
cln.NATSConsumerName = utils.StringPointer(*erOpts.NATSConsumerName)
cln.NATSConsumerName = new(string)
*cln.NATSConsumerName = *erOpts.NATSConsumerName
}
if erOpts.NATSSubject != nil {
cln.NATSSubject = utils.StringPointer(*erOpts.NATSSubject)
cln.NATSSubject = new(string)
*cln.NATSSubject = *erOpts.NATSSubject
}
if erOpts.NATSQueueID != nil {
cln.NATSQueueID = utils.StringPointer(*erOpts.NATSQueueID)
cln.NATSQueueID = new(string)
*cln.NATSQueueID = *erOpts.NATSQueueID
}
if erOpts.NATSJWTFile != nil {
cln.NATSJWTFile = utils.StringPointer(*erOpts.NATSJWTFile)
cln.NATSJWTFile = new(string)
*cln.NATSJWTFile = *erOpts.NATSJWTFile
}
if erOpts.NATSSeedFile != nil {
cln.NATSSeedFile = utils.StringPointer(*erOpts.NATSSeedFile)
cln.NATSSeedFile = new(string)
*cln.NATSSeedFile = *erOpts.NATSSeedFile
}
if erOpts.NATSCertificateAuthority != nil {
cln.NATSCertificateAuthority = utils.StringPointer(*erOpts.NATSCertificateAuthority)
cln.NATSCertificateAuthority = new(string)
*cln.NATSCertificateAuthority = *erOpts.NATSCertificateAuthority
}
if erOpts.NATSClientCertificate != nil {
cln.NATSClientCertificate = utils.StringPointer(*erOpts.NATSClientCertificate)
cln.NATSClientCertificate = new(string)
*cln.NATSClientCertificate = *erOpts.NATSClientCertificate
}
if erOpts.NATSClientKey != nil {
cln.NATSClientKey = utils.StringPointer(*erOpts.NATSClientKey)
cln.NATSClientKey = new(string)
*cln.NATSClientKey = *erOpts.NATSClientKey
}
if erOpts.NATSJetStreamMaxWait != nil {
cln.NATSJetStreamMaxWait = utils.DurationPointer(*erOpts.NATSJetStreamMaxWait)
cln.NATSJetStreamMaxWait = new(time.Duration)
*cln.NATSJetStreamMaxWait = *erOpts.NATSJetStreamMaxWait
}
if erOpts.NATSJetStreamProcessed != nil {
cln.NATSJetStreamProcessed = utils.BoolPointer(*erOpts.NATSJetStreamProcessed)
cln.NATSJetStreamProcessed = new(bool)
*cln.NATSJetStreamProcessed = *erOpts.NATSJetStreamProcessed
}
if erOpts.NATSSubjectProcessed != nil {
cln.NATSSubjectProcessed = utils.StringPointer(*erOpts.NATSSubjectProcessed)
cln.NATSSubjectProcessed = new(string)
*cln.NATSSubjectProcessed = *erOpts.NATSSubjectProcessed
}
if erOpts.NATSJWTFileProcessed != nil {
cln.NATSJWTFileProcessed = utils.StringPointer(*erOpts.NATSJWTFileProcessed)
cln.NATSJWTFileProcessed = new(string)
*cln.NATSJWTFileProcessed = *erOpts.NATSJWTFileProcessed
}
if erOpts.NATSSeedFileProcessed != nil {
cln.NATSSeedFileProcessed = utils.StringPointer(*erOpts.NATSSeedFileProcessed)
cln.NATSSeedFileProcessed = new(string)
*cln.NATSSeedFileProcessed = *erOpts.NATSSeedFileProcessed
}
if erOpts.NATSCertificateAuthorityProcessed != nil {
cln.NATSCertificateAuthorityProcessed = utils.StringPointer(*erOpts.NATSCertificateAuthorityProcessed)
cln.NATSCertificateAuthorityProcessed = new(string)
*cln.NATSCertificateAuthorityProcessed = *erOpts.NATSCertificateAuthorityProcessed
}
if erOpts.NATSClientCertificateProcessed != nil {
cln.NATSClientCertificateProcessed = utils.StringPointer(*erOpts.NATSClientCertificateProcessed)
cln.NATSClientCertificateProcessed = new(string)
*cln.NATSClientCertificateProcessed = *erOpts.NATSClientCertificateProcessed
}
if erOpts.NATSClientKeyProcessed != nil {
cln.NATSClientKeyProcessed = utils.StringPointer(*erOpts.NATSClientKeyProcessed)
cln.NATSClientKeyProcessed = new(string)
*cln.NATSClientKeyProcessed = *erOpts.NATSClientKeyProcessed
}
if erOpts.NATSJetStreamMaxWaitProcessed != nil {
cln.NATSJetStreamMaxWaitProcessed = utils.DurationPointer(*erOpts.NATSJetStreamMaxWaitProcessed)
cln.NATSJetStreamMaxWaitProcessed = new(time.Duration)
*cln.NATSJetStreamMaxWaitProcessed = *erOpts.NATSJetStreamMaxWaitProcessed
}
return cln
}

View File

@@ -182,7 +182,8 @@ func (fc FCTemplate) Clone() (cln *FCTemplate) {
MaskLen: fc.MaskLen,
}
if fc.RoundingDecimals != nil {
cln.RoundingDecimals = utils.IntPointer(*fc.RoundingDecimals)
cln.RoundingDecimals = new(int)
*cln.RoundingDecimals = *fc.RoundingDecimals
}
if fc.pathSlice != nil {
cln.pathSlice = utils.CloneStringSlice(fc.pathSlice)

View File

@@ -177,7 +177,8 @@ func (resOpts *ResourcesOpts) Clone() (cln *ResourcesOpts) {
Units: resOpts.Units,
}
if resOpts.UsageTTL != nil {
cln.UsageTTL = utils.DurationPointer(*resOpts.UsageTTL)
cln.UsageTTL = new(time.Duration)
*cln.UsageTTL = *resOpts.UsageTTL
}
return
}

View File

@@ -250,13 +250,16 @@ func (rts *RoutesOpts) Clone() (cln *RoutesOpts) {
MaxCost: rts.MaxCost,
}
if rts.ProfileCount != nil {
cln.ProfileCount = utils.IntPointer(*rts.ProfileCount)
cln.ProfileCount = new(int)
*cln.ProfileCount = *rts.ProfileCount
}
if rts.Limit != nil {
cln.Limit = utils.IntPointer(*rts.Limit)
cln.Limit = new(int)
*cln.Limit = *rts.Limit
}
if rts.Offset != nil {
cln.Offset = utils.IntPointer(*rts.Offset)
cln.Offset = new(int)
*cln.Offset = *rts.Offset
}
return
}

View File

@@ -483,16 +483,20 @@ func (scfg SessionSCfg) Clone() (cln *SessionSCfg) {
cln.DefaultUsage[k] = v
}
if scfg.SessionTTLMaxDelay != nil {
cln.SessionTTLMaxDelay = utils.DurationPointer(*scfg.SessionTTLMaxDelay)
cln.SessionTTLMaxDelay = new(time.Duration)
*cln.SessionTTLMaxDelay = *scfg.SessionTTLMaxDelay
}
if scfg.SessionTTLLastUsed != nil {
cln.SessionTTLLastUsed = utils.DurationPointer(*scfg.SessionTTLLastUsed)
cln.SessionTTLLastUsed = new(time.Duration)
*cln.SessionTTLLastUsed = *scfg.SessionTTLLastUsed
}
if scfg.SessionTTLUsage != nil {
cln.SessionTTLUsage = utils.DurationPointer(*scfg.SessionTTLUsage)
cln.SessionTTLUsage = new(time.Duration)
*cln.SessionTTLUsage = *scfg.SessionTTLUsage
}
if scfg.SessionTTLLastUsage != nil {
cln.SessionTTLLastUsage = utils.DurationPointer(*scfg.SessionTTLLastUsage)
cln.SessionTTLLastUsage = new(time.Duration)
*cln.SessionTTLLastUsage = *scfg.SessionTTLLastUsage
}
if scfg.ChargerSConns != nil {

View File

@@ -134,7 +134,8 @@ func (ev *CGREvent) Clone() (clned *CGREvent) {
APIOpts: make(map[string]interface{}),
}
if ev.Time != nil {
clned.Time = TimePointer(*ev.Time)
clned.Time = new(time.Time)
*clned.Time = *ev.Time
}
for k, v := range ev.Event {
clned.Event[k] = v