From eec3bbe70cccada4d6d68ce94ec4eac7d3be74dc Mon Sep 17 00:00:00 2001 From: Trial97 Date: Thu, 1 Aug 2019 11:28:19 +0300 Subject: [PATCH] Added *variable to LoaderS template --- config/config.go | 5 +- config/config_defaults.go | 186 ++++++++--------- config/config_json_test.go | 186 ++++++++--------- config/config_test.go | 186 ++++++++--------- data/conf/cgrates/cgrates.json | 187 +++++++++--------- .../samples/loaders/tutmongo/cgrates.json | 22 +-- .../samples/loaders/tutmysql/cgrates.json | 22 +-- .../samples/tutmysql_internal/cgrates.json | 114 +++++------ integration_test.sh | 5 +- loaders/libloader.go | 2 + loaders/libloader_test.go | 90 +++++++++ 11 files changed, 553 insertions(+), 452 deletions(-) diff --git a/config/config.go b/config/config.go index 202d27436..73fde9845 100755 --- a/config/config.go +++ b/config/config.go @@ -459,12 +459,13 @@ func (self *CGRConfig) checkConfigSanity() error { for _, data := range ldrSCfg.Data { if !utils.IsSliceMember([]string{utils.MetaAttributes, utils.MetaResources, utils.MetaFilters, utils.MetaStats, - utils.MetaSuppliers, utils.MetaThresholds}, data.Type) { + utils.MetaSuppliers, utils.MetaThresholds, utils.MetaChargers, + utils.MetaDispatchers, utils.MetaDispatcherHosts}, data.Type) { return fmt.Errorf("<%s> unsupported data type %s", utils.LoaderS, data.Type) } for _, field := range data.Fields { - if field.Type != utils.META_COMPOSED && field.Type != utils.MetaString { + if field.Type != utils.META_COMPOSED && field.Type != utils.MetaString && field.Type != utils.MetaVariable { return fmt.Errorf("<%s> invalid field type %s for %s at %s", utils.LoaderS, field.Type, data.Type, field.Tag) } } diff --git a/config/config_defaults.go b/config/config_defaults.go index 353506ea3..485af39d3 100755 --- a/config/config_defaults.go +++ b/config/config_defaults.go @@ -546,147 +546,147 @@ const CGRATES_CFG_JSON = ` "type": "*attributes", // data source type "file_name": "Attributes.csv", // file name in the tp_in_dir "fields": [ - {"tag": "TenantID", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, - {"tag": "ProfileID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, - {"tag": "Contexts", "field_id": "Contexts", "type": "*composed", "value": "~2"}, - {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~3"}, - {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~4"}, - {"tag": "AttributeFilterIDs", "field_id": "AttributeFilterIDs", "type": "*composed", "value": "~5"}, - {"tag": "FieldName", "field_id": "FieldName", "type": "*composed", "value": "~6"}, - {"tag": "Type", "field_id": "Type", "type": "*composed", "value": "~7"}, - {"tag": "Value", "field_id": "Value", "type": "*composed", "value": "~8"}, - {"tag": "Blocker", "field_id": "Blocker", "type": "*composed", "value": "~9"}, - {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~10"}, + {"tag": "TenantID", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, + {"tag": "ProfileID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, + {"tag": "Contexts", "field_id": "Contexts", "type": "*variable", "value": "~2"}, + {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~3"}, + {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~4"}, + {"tag": "AttributeFilterIDs", "field_id": "AttributeFilterIDs", "type": "*variable", "value": "~5"}, + {"tag": "FieldName", "field_id": "FieldName", "type": "*variable", "value": "~6"}, + {"tag": "Type", "field_id": "Type", "type": "*variable", "value": "~7"}, + {"tag": "Value", "field_id": "Value", "type": "*variable", "value": "~8"}, + {"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~9"}, + {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~10"}, ], }, { "type": "*filters", // data source type "file_name": "Filters.csv", // file name in the tp_in_dir "fields": [ - {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, - {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, - {"tag": "FilterType", "field_id": "FilterType", "type": "*composed", "value": "~2"}, - {"tag": "FilterFieldName", "field_id": "FilterFieldName", "type": "*composed", "value": "~3"}, - {"tag": "FilterFieldValues", "field_id": "FilterFieldValues", "type": "*composed", "value": "~4"}, - {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~5"}, + {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, + {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, + {"tag": "FilterType", "field_id": "FilterType", "type": "*variable", "value": "~2"}, + {"tag": "FilterFieldName", "field_id": "FilterFieldName", "type": "*variable", "value": "~3"}, + {"tag": "FilterFieldValues", "field_id": "FilterFieldValues", "type": "*variable", "value": "~4"}, + {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~5"}, ], }, { "type": "*resources", // data source type "file_name": "Resources.csv", // file name in the tp_in_dir "fields": [ - {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, - {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, - {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~2"}, - {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~3"}, - {"tag": "TTL", "field_id": "UsageTTL", "type": "*composed", "value": "~4"}, - {"tag": "Limit", "field_id": "Limit", "type": "*composed", "value": "~5"}, - {"tag": "AllocationMessage", "field_id": "AllocationMessage", "type": "*composed", "value": "~6"}, - {"tag": "Blocker", "field_id": "Blocker", "type": "*composed", "value": "~7"}, - {"tag": "Stored", "field_id": "Stored", "type": "*composed", "value": "~8"}, - {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~9"}, - {"tag": "ThresholdIDs", "field_id": "ThresholdIDs", "type": "*composed", "value": "~10"}, + {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, + {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, + {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"}, + {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"}, + {"tag": "TTL", "field_id": "UsageTTL", "type": "*variable", "value": "~4"}, + {"tag": "Limit", "field_id": "Limit", "type": "*variable", "value": "~5"}, + {"tag": "AllocationMessage", "field_id": "AllocationMessage", "type": "*variable", "value": "~6"}, + {"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~7"}, + {"tag": "Stored", "field_id": "Stored", "type": "*variable", "value": "~8"}, + {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~9"}, + {"tag": "ThresholdIDs", "field_id": "ThresholdIDs", "type": "*variable", "value": "~10"}, ], }, { "type": "*stats", // data source type "file_name": "Stats.csv", // file name in the tp_in_dir "fields": [ - {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, - {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, - {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~2"}, - {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~3"}, - {"tag": "QueueLength", "field_id": "QueueLength", "type": "*composed", "value": "~4"}, - {"tag": "TTL", "field_id": "TTL", "type": "*composed", "value": "~5"}, - {"tag": "MinItems", "field_id": "MinItems", "type": "*composed", "value": "~6"}, - {"tag": "MetricIDs", "field_id": "MetricIDs", "type": "*composed", "value": "~7"}, - {"tag": "MetricFilterIDs", "field_id": "MetricFilterIDs", "type": "*composed", "value": "~8"}, - {"tag": "Blocker", "field_id": "Blocker", "type": "*composed", "value": "~9"}, - {"tag": "Stored", "field_id": "Stored", "type": "*composed", "value": "~10"}, - {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~11"}, - {"tag": "ThresholdIDs", "field_id": "ThresholdIDs", "type": "*composed", "value": "~12"}, + {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, + {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, + {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"}, + {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"}, + {"tag": "QueueLength", "field_id": "QueueLength", "type": "*variable", "value": "~4"}, + {"tag": "TTL", "field_id": "TTL", "type": "*variable", "value": "~5"}, + {"tag": "MinItems", "field_id": "MinItems", "type": "*variable", "value": "~6"}, + {"tag": "MetricIDs", "field_id": "MetricIDs", "type": "*variable", "value": "~7"}, + {"tag": "MetricFilterIDs", "field_id": "MetricFilterIDs", "type": "*variable", "value": "~8"}, + {"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~9"}, + {"tag": "Stored", "field_id": "Stored", "type": "*variable", "value": "~10"}, + {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~11"}, + {"tag": "ThresholdIDs", "field_id": "ThresholdIDs", "type": "*variable", "value": "~12"}, ], }, { "type": "*thresholds", // data source type "file_name": "Thresholds.csv", // file name in the tp_in_dir "fields": [ - {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, - {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, - {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~2"}, - {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~3"}, - {"tag": "MaxHits", "field_id": "MaxHits", "type": "*composed", "value": "~4"}, - {"tag": "MinHits", "field_id": "MinHits", "type": "*composed", "value": "~5"}, - {"tag": "MinSleep", "field_id": "MinSleep", "type": "*composed", "value": "~6"}, - {"tag": "Blocker", "field_id": "Blocker", "type": "*composed", "value": "~7"}, - {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~8"}, - {"tag": "ActionIDs", "field_id": "ActionIDs", "type": "*composed", "value": "~9"}, - {"tag": "Async", "field_id": "Async", "type": "*composed", "value": "~10"}, + {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, + {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, + {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"}, + {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"}, + {"tag": "MaxHits", "field_id": "MaxHits", "type": "*variable", "value": "~4"}, + {"tag": "MinHits", "field_id": "MinHits", "type": "*variable", "value": "~5"}, + {"tag": "MinSleep", "field_id": "MinSleep", "type": "*variable", "value": "~6"}, + {"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~7"}, + {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~8"}, + {"tag": "ActionIDs", "field_id": "ActionIDs", "type": "*variable", "value": "~9"}, + {"tag": "Async", "field_id": "Async", "type": "*variable", "value": "~10"}, ], }, { "type": "*suppliers", // data source type "file_name": "Suppliers.csv", // file name in the tp_in_dir "fields": [ - {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, - {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, - {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~2"}, - {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~3"}, - {"tag": "Sorting", "field_id": "Sorting", "type": "*composed", "value": "~4"}, - {"tag": "SortingParamameters", "field_id": "SortingParamameters", "type": "*composed", "value": "~5"}, - {"tag": "SupplierID", "field_id": "SupplierID", "type": "*composed", "value": "~6"}, - {"tag": "SupplierFilterIDs", "field_id": "SupplierFilterIDs", "type": "*composed", "value": "~7"}, - {"tag": "SupplierAccountIDs", "field_id": "SupplierAccountIDs", "type": "*composed", "value": "~8"}, - {"tag": "SupplierRatingPlanIDs", "field_id": "SupplierRatingPlanIDs", "type": "*composed", "value": "~9"}, - {"tag": "SupplierResourceIDs", "field_id": "SupplierResourceIDs", "type": "*composed", "value": "~10"}, - {"tag": "SupplierStatIDs", "field_id": "SupplierStatIDs", "type": "*composed", "value": "~11"}, - {"tag": "SupplierWeight", "field_id": "SupplierWeight", "type": "*composed", "value": "~12"}, - {"tag": "SupplierBlocker", "field_id": "SupplierBlocker", "type": "*composed", "value": "~13"}, - {"tag": "SupplierParameters", "field_id": "SupplierParameters", "type": "*composed", "value": "~14"}, - {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~15"}, + {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, + {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, + {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"}, + {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"}, + {"tag": "Sorting", "field_id": "Sorting", "type": "*variable", "value": "~4"}, + {"tag": "SortingParamameters", "field_id": "SortingParamameters", "type": "*variable", "value": "~5"}, + {"tag": "SupplierID", "field_id": "SupplierID", "type": "*variable", "value": "~6"}, + {"tag": "SupplierFilterIDs", "field_id": "SupplierFilterIDs", "type": "*variable", "value": "~7"}, + {"tag": "SupplierAccountIDs", "field_id": "SupplierAccountIDs", "type": "*variable", "value": "~8"}, + {"tag": "SupplierRatingPlanIDs", "field_id": "SupplierRatingPlanIDs", "type": "*variable", "value": "~9"}, + {"tag": "SupplierResourceIDs", "field_id": "SupplierResourceIDs", "type": "*variable", "value": "~10"}, + {"tag": "SupplierStatIDs", "field_id": "SupplierStatIDs", "type": "*variable", "value": "~11"}, + {"tag": "SupplierWeight", "field_id": "SupplierWeight", "type": "*variable", "value": "~12"}, + {"tag": "SupplierBlocker", "field_id": "SupplierBlocker", "type": "*variable", "value": "~13"}, + {"tag": "SupplierParameters", "field_id": "SupplierParameters", "type": "*variable", "value": "~14"}, + {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~15"}, ], }, { "type": "*chargers", // data source type "file_name": "Chargers.csv", // file name in the tp_in_dir "fields": [ - {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, - {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, - {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~2"}, - {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~3"}, - {"tag": "RunID", "field_id": "RunID", "type": "*composed", "value": "~4"}, - {"tag": "AttributeIDs", "field_id": "AttributeIDs", "type": "*composed", "value": "~5"}, - {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~6"}, + {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, + {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, + {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"}, + {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"}, + {"tag": "RunID", "field_id": "RunID", "type": "*variable", "value": "~4"}, + {"tag": "AttributeIDs", "field_id": "AttributeIDs", "type": "*variable", "value": "~5"}, + {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~6"}, ], }, { "type": "*dispatchers", // data source type "file_name": "DispatcherProfiles.csv", // file name in the tp_in_dir "fields": [ - {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, - {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, - {"tag": "Contexts", "field_id": "Contexts", "type": "*composed", "value": "~2"}, - {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~3"}, - {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~4"}, - {"tag": "Strategy", "field_id": "Strategy", "type": "*composed", "value": "~5"}, - {"tag": "StrategyParameters", "field_id": "StrategyParameters", "type": "*composed", "value": "~6"}, - {"tag": "ConnID", "field_id": "ConnID", "type": "*composed", "value": "~7"}, - {"tag": "ConnFilterIDs", "field_id": "ConnFilterIDs", "type": "*composed", "value": "~8"}, - {"tag": "ConnWeight", "field_id": "ConnWeight", "type": "*composed", "value": "~9"}, - {"tag": "ConnBlocker", "field_id": "ConnBlocker", "type": "*composed", "value": "~10"}, - {"tag": "ConnParameters", "field_id": "ConnParameters", "type": "*composed", "value": "~11"}, - {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~12"}, + {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, + {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, + {"tag": "Contexts", "field_id": "Contexts", "type": "*variable", "value": "~2"}, + {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~3"}, + {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~4"}, + {"tag": "Strategy", "field_id": "Strategy", "type": "*variable", "value": "~5"}, + {"tag": "StrategyParameters", "field_id": "StrategyParameters", "type": "*variable", "value": "~6"}, + {"tag": "ConnID", "field_id": "ConnID", "type": "*variable", "value": "~7"}, + {"tag": "ConnFilterIDs", "field_id": "ConnFilterIDs", "type": "*variable", "value": "~8"}, + {"tag": "ConnWeight", "field_id": "ConnWeight", "type": "*variable", "value": "~9"}, + {"tag": "ConnBlocker", "field_id": "ConnBlocker", "type": "*variable", "value": "~10"}, + {"tag": "ConnParameters", "field_id": "ConnParameters", "type": "*variable", "value": "~11"}, + {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~12"}, ], }, { "type": "*dispatcher_hosts", // data source type "file_name": "DispatcherHosts.csv", // file name in the tp_in_dir "fields": [ - {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, - {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, - {"tag": "Address", "field_id": "Address", "type": "*composed", "value": "~2"}, - {"tag": "Transport", "field_id": "Transport", "type": "*composed", "value": "~3"}, - {"tag": "TLS", "field_id": "TLS", "type": "*composed", "value": "~4"}, + {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, + {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, + {"tag": "Address", "field_id": "Address", "type": "*variable", "value": "~2"}, + {"tag": "Transport", "field_id": "Transport", "type": "*variable", "value": "~3"}, + {"tag": "TLS", "field_id": "TLS", "type": "*variable", "value": "~4"}, ], }, ], diff --git a/config/config_json_test.go b/config/config_json_test.go index 8a05cbca7..6b967a0b0 100755 --- a/config/config_json_test.go +++ b/config/config_json_test.go @@ -892,49 +892,49 @@ func TestDfLoaderJsonCfg(t *testing.T) { Fields: &[]*FcTemplateJsonCfg{ {Tag: utils.StringPointer("TenantID"), Field_id: utils.StringPointer(utils.Tenant), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~0"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer("ProfileID"), Field_id: utils.StringPointer(utils.ID), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~1"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer("Contexts"), Field_id: utils.StringPointer(utils.Contexts), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~2")}, {Tag: utils.StringPointer("FilterIDs"), Field_id: utils.StringPointer(utils.FilterIDs), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~3")}, {Tag: utils.StringPointer("ActivationInterval"), Field_id: utils.StringPointer("ActivationInterval"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~4")}, {Tag: utils.StringPointer("AttributeFilterIDs"), Field_id: utils.StringPointer("AttributeFilterIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~5")}, {Tag: utils.StringPointer("FieldName"), Field_id: utils.StringPointer(utils.FieldName), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~6")}, {Tag: utils.StringPointer("Type"), Field_id: utils.StringPointer("Type"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~7")}, {Tag: utils.StringPointer("Value"), Field_id: utils.StringPointer("Value"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~8")}, {Tag: utils.StringPointer("Blocker"), Field_id: utils.StringPointer("Blocker"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~9")}, {Tag: utils.StringPointer("Weight"), Field_id: utils.StringPointer(utils.Weight), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~10")}, }, }, @@ -944,29 +944,29 @@ func TestDfLoaderJsonCfg(t *testing.T) { Fields: &[]*FcTemplateJsonCfg{ {Tag: utils.StringPointer(utils.Tenant), Field_id: utils.StringPointer(utils.Tenant), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~0"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer(utils.ID), Field_id: utils.StringPointer(utils.ID), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~1"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer("FilterType"), Field_id: utils.StringPointer("FilterType"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~2")}, {Tag: utils.StringPointer("FilterFieldName"), Field_id: utils.StringPointer("FilterFieldName"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~3")}, {Tag: utils.StringPointer("FilterFieldValues"), Field_id: utils.StringPointer("FilterFieldValues"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~4")}, {Tag: utils.StringPointer("ActivationInterval"), Field_id: utils.StringPointer("ActivationInterval"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~5")}, }, }, @@ -976,49 +976,49 @@ func TestDfLoaderJsonCfg(t *testing.T) { Fields: &[]*FcTemplateJsonCfg{ {Tag: utils.StringPointer(utils.Tenant), Field_id: utils.StringPointer(utils.Tenant), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~0"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer(utils.ID), Field_id: utils.StringPointer(utils.ID), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~1"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer("FilterIDs"), Field_id: utils.StringPointer("FilterIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~2")}, {Tag: utils.StringPointer("ActivationInterval"), Field_id: utils.StringPointer("ActivationInterval"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~3")}, {Tag: utils.StringPointer("TTL"), Field_id: utils.StringPointer("UsageTTL"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~4")}, {Tag: utils.StringPointer("Limit"), Field_id: utils.StringPointer("Limit"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~5")}, {Tag: utils.StringPointer("AllocationMessage"), Field_id: utils.StringPointer("AllocationMessage"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~6")}, {Tag: utils.StringPointer("Blocker"), Field_id: utils.StringPointer("Blocker"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~7")}, {Tag: utils.StringPointer("Stored"), Field_id: utils.StringPointer("Stored"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~8")}, {Tag: utils.StringPointer("Weight"), Field_id: utils.StringPointer("Weight"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~9")}, {Tag: utils.StringPointer("ThresholdIDs"), Field_id: utils.StringPointer("ThresholdIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~10")}, }, }, @@ -1028,58 +1028,58 @@ func TestDfLoaderJsonCfg(t *testing.T) { Fields: &[]*FcTemplateJsonCfg{ {Tag: utils.StringPointer(utils.Tenant), Field_id: utils.StringPointer(utils.Tenant), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~0"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer(utils.ID), Field_id: utils.StringPointer(utils.ID), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~1"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer("FilterIDs"), Field_id: utils.StringPointer("FilterIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~2")}, {Tag: utils.StringPointer("ActivationInterval"), Field_id: utils.StringPointer("ActivationInterval"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~3")}, {Tag: utils.StringPointer("QueueLength"), Field_id: utils.StringPointer("QueueLength"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~4")}, {Tag: utils.StringPointer("TTL"), Field_id: utils.StringPointer("TTL"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~5")}, {Tag: utils.StringPointer("MinItems"), Field_id: utils.StringPointer("MinItems"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~6")}, {Tag: utils.StringPointer("MetricIDs"), Field_id: utils.StringPointer("MetricIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~7")}, {Tag: utils.StringPointer("MetricFilterIDs"), Field_id: utils.StringPointer("MetricFilterIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~8")}, {Tag: utils.StringPointer("Blocker"), Field_id: utils.StringPointer("Blocker"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~9")}, {Tag: utils.StringPointer("Stored"), Field_id: utils.StringPointer("Stored"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~10")}, {Tag: utils.StringPointer("Weight"), Field_id: utils.StringPointer("Weight"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~11")}, {Tag: utils.StringPointer("ThresholdIDs"), Field_id: utils.StringPointer("ThresholdIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~12")}, }, }, @@ -1089,49 +1089,49 @@ func TestDfLoaderJsonCfg(t *testing.T) { Fields: &[]*FcTemplateJsonCfg{ {Tag: utils.StringPointer(utils.Tenant), Field_id: utils.StringPointer(utils.Tenant), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~0"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer(utils.ID), Field_id: utils.StringPointer(utils.ID), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~1"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer("FilterIDs"), Field_id: utils.StringPointer("FilterIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~2")}, {Tag: utils.StringPointer("ActivationInterval"), Field_id: utils.StringPointer("ActivationInterval"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~3")}, {Tag: utils.StringPointer("MaxHits"), Field_id: utils.StringPointer("MaxHits"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~4")}, {Tag: utils.StringPointer("MinHits"), Field_id: utils.StringPointer("MinHits"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~5")}, {Tag: utils.StringPointer("MinSleep"), Field_id: utils.StringPointer("MinSleep"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~6")}, {Tag: utils.StringPointer("Blocker"), Field_id: utils.StringPointer("Blocker"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~7")}, {Tag: utils.StringPointer("Weight"), Field_id: utils.StringPointer("Weight"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~8")}, {Tag: utils.StringPointer("ActionIDs"), Field_id: utils.StringPointer("ActionIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~9")}, {Tag: utils.StringPointer("Async"), Field_id: utils.StringPointer("Async"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~10")}, }, }, @@ -1141,69 +1141,69 @@ func TestDfLoaderJsonCfg(t *testing.T) { Fields: &[]*FcTemplateJsonCfg{ {Tag: utils.StringPointer(utils.Tenant), Field_id: utils.StringPointer(utils.Tenant), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~0"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer(utils.ID), Field_id: utils.StringPointer(utils.ID), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~1"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer("FilterIDs"), Field_id: utils.StringPointer("FilterIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~2")}, {Tag: utils.StringPointer("ActivationInterval"), Field_id: utils.StringPointer("ActivationInterval"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~3")}, {Tag: utils.StringPointer("Sorting"), Field_id: utils.StringPointer("Sorting"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~4")}, {Tag: utils.StringPointer("SortingParamameters"), Field_id: utils.StringPointer("SortingParamameters"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~5")}, {Tag: utils.StringPointer("SupplierID"), Field_id: utils.StringPointer("SupplierID"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~6")}, {Tag: utils.StringPointer("SupplierFilterIDs"), Field_id: utils.StringPointer("SupplierFilterIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~7")}, {Tag: utils.StringPointer("SupplierAccountIDs"), Field_id: utils.StringPointer("SupplierAccountIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~8")}, {Tag: utils.StringPointer("SupplierRatingPlanIDs"), Field_id: utils.StringPointer("SupplierRatingPlanIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~9")}, {Tag: utils.StringPointer("SupplierResourceIDs"), Field_id: utils.StringPointer("SupplierResourceIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~10")}, {Tag: utils.StringPointer("SupplierStatIDs"), Field_id: utils.StringPointer("SupplierStatIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~11")}, {Tag: utils.StringPointer("SupplierWeight"), Field_id: utils.StringPointer("SupplierWeight"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~12")}, {Tag: utils.StringPointer("SupplierBlocker"), Field_id: utils.StringPointer("SupplierBlocker"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~13")}, {Tag: utils.StringPointer("SupplierParameters"), Field_id: utils.StringPointer("SupplierParameters"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~14")}, {Tag: utils.StringPointer("Weight"), Field_id: utils.StringPointer("Weight"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~15")}, }, }, @@ -1213,33 +1213,33 @@ func TestDfLoaderJsonCfg(t *testing.T) { Fields: &[]*FcTemplateJsonCfg{ {Tag: utils.StringPointer(utils.Tenant), Field_id: utils.StringPointer(utils.Tenant), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~0"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer(utils.ID), Field_id: utils.StringPointer(utils.ID), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~1"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer("FilterIDs"), Field_id: utils.StringPointer("FilterIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~2")}, {Tag: utils.StringPointer("ActivationInterval"), Field_id: utils.StringPointer("ActivationInterval"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~3")}, {Tag: utils.StringPointer("RunID"), Field_id: utils.StringPointer("RunID"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~4")}, {Tag: utils.StringPointer("AttributeIDs"), Field_id: utils.StringPointer("AttributeIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~5")}, {Tag: utils.StringPointer("Weight"), Field_id: utils.StringPointer("Weight"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~6")}, }, }, @@ -1249,57 +1249,57 @@ func TestDfLoaderJsonCfg(t *testing.T) { Fields: &[]*FcTemplateJsonCfg{ {Tag: utils.StringPointer(utils.Tenant), Field_id: utils.StringPointer(utils.Tenant), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~0"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer(utils.ID), Field_id: utils.StringPointer(utils.ID), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~1"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer("Contexts"), Field_id: utils.StringPointer("Contexts"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~2")}, {Tag: utils.StringPointer("FilterIDs"), Field_id: utils.StringPointer("FilterIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~3")}, {Tag: utils.StringPointer("ActivationInterval"), Field_id: utils.StringPointer("ActivationInterval"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~4")}, {Tag: utils.StringPointer("Strategy"), Field_id: utils.StringPointer("Strategy"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~5")}, {Tag: utils.StringPointer("StrategyParameters"), Field_id: utils.StringPointer("StrategyParameters"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~6")}, {Tag: utils.StringPointer("ConnID"), Field_id: utils.StringPointer("ConnID"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~7")}, {Tag: utils.StringPointer("ConnFilterIDs"), Field_id: utils.StringPointer("ConnFilterIDs"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~8")}, {Tag: utils.StringPointer("ConnWeight"), Field_id: utils.StringPointer("ConnWeight"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~9")}, {Tag: utils.StringPointer("ConnBlocker"), Field_id: utils.StringPointer("ConnBlocker"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~10")}, {Tag: utils.StringPointer("ConnParameters"), Field_id: utils.StringPointer("ConnParameters"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~11")}, {Tag: utils.StringPointer("Weight"), Field_id: utils.StringPointer("Weight"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~12")}, }, }, @@ -1309,25 +1309,25 @@ func TestDfLoaderJsonCfg(t *testing.T) { Fields: &[]*FcTemplateJsonCfg{ {Tag: utils.StringPointer(utils.Tenant), Field_id: utils.StringPointer(utils.Tenant), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~0"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer(utils.ID), Field_id: utils.StringPointer(utils.ID), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~1"), Mandatory: utils.BoolPointer(true)}, {Tag: utils.StringPointer("Address"), Field_id: utils.StringPointer("Address"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~2")}, {Tag: utils.StringPointer("Transport"), Field_id: utils.StringPointer("Transport"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~3")}, {Tag: utils.StringPointer("TLS"), Field_id: utils.StringPointer("TLS"), - Type: utils.StringPointer(utils.META_COMPOSED), + Type: utils.StringPointer(utils.MetaVariable), Value: utils.StringPointer("~4")}, }, }, diff --git a/config/config_test.go b/config/config_test.go index 79b6ee3ca..f4219b303 100755 --- a/config/config_test.go +++ b/config/config_test.go @@ -1056,49 +1056,49 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Fields: []*FCTemplate{ {Tag: "TenantID", FieldId: "Tenant", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "ProfileID", FieldId: "ID", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "Contexts", FieldId: "Contexts", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP)}, {Tag: "FilterIDs", FieldId: "FilterIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP)}, {Tag: "ActivationInterval", FieldId: "ActivationInterval", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP)}, {Tag: "AttributeFilterIDs", FieldId: "AttributeFilterIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP)}, {Tag: "FieldName", FieldId: "FieldName", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP)}, {Tag: "Type", FieldId: "Type", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP)}, {Tag: "Value", FieldId: "Value", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP)}, {Tag: "Blocker", FieldId: "Blocker", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP)}, {Tag: "Weight", FieldId: "Weight", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP)}, }, }, @@ -1108,29 +1108,29 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Fields: []*FCTemplate{ {Tag: "Tenant", FieldId: "Tenant", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "ID", FieldId: "ID", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "FilterType", FieldId: "FilterType", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP)}, {Tag: "FilterFieldName", FieldId: "FilterFieldName", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP)}, {Tag: "FilterFieldValues", FieldId: "FilterFieldValues", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP)}, {Tag: "ActivationInterval", FieldId: "ActivationInterval", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP)}, }, }, @@ -1140,49 +1140,49 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Fields: []*FCTemplate{ {Tag: "Tenant", FieldId: "Tenant", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "ID", FieldId: "ID", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "FilterIDs", FieldId: "FilterIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP)}, {Tag: "ActivationInterval", FieldId: "ActivationInterval", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP)}, {Tag: "TTL", FieldId: "UsageTTL", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP)}, {Tag: "Limit", FieldId: "Limit", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP)}, {Tag: "AllocationMessage", FieldId: "AllocationMessage", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP)}, {Tag: "Blocker", FieldId: "Blocker", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP)}, {Tag: "Stored", FieldId: "Stored", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP)}, {Tag: "Weight", FieldId: "Weight", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP)}, {Tag: "ThresholdIDs", FieldId: "ThresholdIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP)}, }, }, @@ -1192,58 +1192,58 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Fields: []*FCTemplate{ {Tag: "Tenant", FieldId: "Tenant", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "ID", FieldId: "ID", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "FilterIDs", FieldId: "FilterIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP)}, {Tag: "ActivationInterval", FieldId: "ActivationInterval", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP)}, {Tag: "QueueLength", FieldId: "QueueLength", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP)}, {Tag: "TTL", FieldId: "TTL", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP)}, {Tag: "MinItems", FieldId: "MinItems", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP)}, {Tag: "MetricIDs", FieldId: "MetricIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP)}, {Tag: "MetricFilterIDs", FieldId: "MetricFilterIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP)}, {Tag: "Blocker", FieldId: "Blocker", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP)}, {Tag: "Stored", FieldId: "Stored", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP)}, {Tag: "Weight", FieldId: "Weight", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~11", true, utils.INFIELD_SEP)}, {Tag: "ThresholdIDs", FieldId: "ThresholdIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~12", true, utils.INFIELD_SEP)}, }, }, @@ -1253,49 +1253,49 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Fields: []*FCTemplate{ {Tag: "Tenant", FieldId: "Tenant", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "ID", FieldId: "ID", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "FilterIDs", FieldId: "FilterIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP)}, {Tag: "ActivationInterval", FieldId: "ActivationInterval", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP)}, {Tag: "MaxHits", FieldId: "MaxHits", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP)}, {Tag: "MinHits", FieldId: "MinHits", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP)}, {Tag: "MinSleep", FieldId: "MinSleep", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP)}, {Tag: "Blocker", FieldId: "Blocker", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP)}, {Tag: "Weight", FieldId: "Weight", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP)}, {Tag: "ActionIDs", FieldId: "ActionIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP)}, {Tag: "Async", FieldId: "Async", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP)}, }, }, @@ -1305,69 +1305,69 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Fields: []*FCTemplate{ {Tag: "Tenant", FieldId: "Tenant", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "ID", FieldId: "ID", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "FilterIDs", FieldId: "FilterIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP)}, {Tag: "ActivationInterval", FieldId: "ActivationInterval", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP)}, {Tag: "Sorting", FieldId: "Sorting", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP)}, {Tag: "SortingParamameters", FieldId: "SortingParamameters", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP)}, {Tag: "SupplierID", FieldId: "SupplierID", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP)}, {Tag: "SupplierFilterIDs", FieldId: "SupplierFilterIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP)}, {Tag: "SupplierAccountIDs", FieldId: "SupplierAccountIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP)}, {Tag: "SupplierRatingPlanIDs", FieldId: "SupplierRatingPlanIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP)}, {Tag: "SupplierResourceIDs", FieldId: "SupplierResourceIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP)}, {Tag: "SupplierStatIDs", FieldId: "SupplierStatIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~11", true, utils.INFIELD_SEP)}, {Tag: "SupplierWeight", FieldId: "SupplierWeight", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~12", true, utils.INFIELD_SEP)}, {Tag: "SupplierBlocker", FieldId: "SupplierBlocker", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~13", true, utils.INFIELD_SEP)}, {Tag: "SupplierParameters", FieldId: "SupplierParameters", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~14", true, utils.INFIELD_SEP)}, {Tag: "Weight", FieldId: "Weight", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~15", true, utils.INFIELD_SEP)}, }, }, @@ -1377,33 +1377,33 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Fields: []*FCTemplate{ {Tag: "Tenant", FieldId: "Tenant", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "ID", FieldId: "ID", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "FilterIDs", FieldId: "FilterIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP)}, {Tag: "ActivationInterval", FieldId: "ActivationInterval", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP)}, {Tag: "RunID", FieldId: "RunID", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP)}, {Tag: "AttributeIDs", FieldId: "AttributeIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP)}, {Tag: "Weight", FieldId: "Weight", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP)}, }, }, @@ -1413,67 +1413,67 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Fields: []*FCTemplate{ {Tag: "Tenant", FieldId: "Tenant", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "ID", FieldId: "ID", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "Contexts", FieldId: "Contexts", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP), }, {Tag: "FilterIDs", FieldId: "FilterIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP), }, {Tag: "ActivationInterval", FieldId: "ActivationInterval", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP), }, {Tag: "Strategy", FieldId: "Strategy", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP), }, {Tag: "StrategyParameters", FieldId: "StrategyParameters", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP), }, {Tag: "ConnID", FieldId: "ConnID", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP), }, {Tag: "ConnFilterIDs", FieldId: "ConnFilterIDs", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP), }, {Tag: "ConnWeight", FieldId: "ConnWeight", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP), }, {Tag: "ConnBlocker", FieldId: "ConnBlocker", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP), }, {Tag: "ConnParameters", FieldId: "ConnParameters", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~11", true, utils.INFIELD_SEP), }, {Tag: "Weight", FieldId: "Weight", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~12", true, utils.INFIELD_SEP), }, }, @@ -1484,27 +1484,27 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Fields: []*FCTemplate{ {Tag: "Tenant", FieldId: "Tenant", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "ID", FieldId: "ID", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), Mandatory: true}, {Tag: "Address", FieldId: "Address", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP), }, {Tag: "Transport", FieldId: "Transport", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP), }, {Tag: "TLS", FieldId: "TLS", - Type: utils.META_COMPOSED, + Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP), }, }, diff --git a/data/conf/cgrates/cgrates.json b/data/conf/cgrates/cgrates.json index 8c6511262..be9d7e3c9 100644 --- a/data/conf/cgrates/cgrates.json +++ b/data/conf/cgrates/cgrates.json @@ -191,6 +191,7 @@ // "synchronous": false, // block processing until export has a result // "attempts": 1, // export attempts // "field_separator": ",", // used field separator in some export formats, eg: *file_csv +// "attributes_context": "", // attributes context - empty disables attributes processing // "header_fields": [], // template of the exported header fields // "content_fields": [ // template of the exported content fields // {"tag": "CGRID", "type": "*composed", "value": "~CGRID"}, @@ -294,6 +295,7 @@ // "session_indexes": [], // index sessions based on these fields for GetActiveSessions API // "client_protocol": 1.0, // version of protocol to use when acting as JSON-PRC client <"0","1.0"> // "channel_sync_interval": "0", // sync channels to detect stale sessions (0 to disable) +// "terminate_attempts": 5 // attempts to get the session before terminating it // }, @@ -522,145 +524,147 @@ // "type": "*attributes", // data source type // "file_name": "Attributes.csv", // file name in the tp_in_dir // "fields": [ -// {"tag": "TenantID", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, -// {"tag": "ProfileID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, -// {"tag": "Contexts", "field_id": "Contexts", "type": "*composed", "value": "~2"}, -// {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~3"}, -// {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~4"}, -// {"tag": "AttributeFilterIDs", "field_id": "AttributeFilterIDs", "type": "*composed", "value": "~5"}, -// {"tag": "FieldName", "field_id": "FieldName", "type": "*composed", "value": "~6"}, -// {"tag": "Type", "field_id": "Type", "type": "*composed", "value": "~7"}, -// {"tag": "Value", "field_id": "Value", "type": "*composed", "value": "~8"}, -// {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~9"}, +// {"tag": "TenantID", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, +// {"tag": "ProfileID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, +// {"tag": "Contexts", "field_id": "Contexts", "type": "*variable", "value": "~2"}, +// {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~3"}, +// {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~4"}, +// {"tag": "AttributeFilterIDs", "field_id": "AttributeFilterIDs", "type": "*variable", "value": "~5"}, +// {"tag": "FieldName", "field_id": "FieldName", "type": "*variable", "value": "~6"}, +// {"tag": "Type", "field_id": "Type", "type": "*variable", "value": "~7"}, +// {"tag": "Value", "field_id": "Value", "type": "*variable", "value": "~8"}, +// {"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~9"}, +// {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~10"}, // ], // }, // { // "type": "*filters", // data source type // "file_name": "Filters.csv", // file name in the tp_in_dir // "fields": [ -// {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, -// {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, -// {"tag": "FilterType", "field_id": "FilterType", "type": "*composed", "value": "~2"}, -// {"tag": "FilterFieldName", "field_id": "FilterFieldName", "type": "*composed", "value": "~3"}, -// {"tag": "FilterFieldValues", "field_id": "FilterFieldValues", "type": "*composed", "value": "~4"}, -// {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~5"}, +// {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, +// {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, +// {"tag": "FilterType", "field_id": "FilterType", "type": "*variable", "value": "~2"}, +// {"tag": "FilterFieldName", "field_id": "FilterFieldName", "type": "*variable", "value": "~3"}, +// {"tag": "FilterFieldValues", "field_id": "FilterFieldValues", "type": "*variable", "value": "~4"}, +// {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~5"}, // ], // }, // { // "type": "*resources", // data source type // "file_name": "Resources.csv", // file name in the tp_in_dir // "fields": [ -// {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, -// {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, -// {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~2"}, -// {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~3"}, -// {"tag": "TTL", "field_id": "UsageTTL", "type": "*composed", "value": "~4"}, -// {"tag": "Limit", "field_id": "Limit", "type": "*composed", "value": "~5"}, -// {"tag": "AllocationMessage", "field_id": "AllocationMessage", "type": "*composed", "value": "~6"}, -// {"tag": "Blocker", "field_id": "Blocker", "type": "*composed", "value": "~7"}, -// {"tag": "Stored", "field_id": "Stored", "type": "*composed", "value": "~8"}, -// {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~9"}, -// {"tag": "ThresholdIDs", "field_id": "ThresholdIDs", "type": "*composed", "value": "~10"}, +// {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, +// {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, +// {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"}, +// {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"}, +// {"tag": "TTL", "field_id": "UsageTTL", "type": "*variable", "value": "~4"}, +// {"tag": "Limit", "field_id": "Limit", "type": "*variable", "value": "~5"}, +// {"tag": "AllocationMessage", "field_id": "AllocationMessage", "type": "*variable", "value": "~6"}, +// {"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~7"}, +// {"tag": "Stored", "field_id": "Stored", "type": "*variable", "value": "~8"}, +// {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~9"}, +// {"tag": "ThresholdIDs", "field_id": "ThresholdIDs", "type": "*variable", "value": "~10"}, // ], // }, // { // "type": "*stats", // data source type // "file_name": "Stats.csv", // file name in the tp_in_dir // "fields": [ -// {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, -// {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, -// {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~2"}, -// {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~3"}, -// {"tag": "QueueLength", "field_id": "QueueLength", "type": "*composed", "value": "~4"}, -// {"tag": "TTL", "field_id": "TTL", "type": "*composed", "value": "~5"}, -// {"tag": "Metrics", "field_id": "Metrics", "type": "*composed", "value": "~6"}, -// {"tag": "Blocker", "field_id": "Blocker", "type": "*composed", "value": "~7"}, -// {"tag": "Stored", "field_id": "Stored", "type": "*composed", "value": "~8"}, -// {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~9"}, -// {"tag": "MinItems", "field_id": "MinItems", "type": "*composed", "value": "~10"}, -// {"tag": "ThresholdIDs", "field_id": "ThresholdIDs", "type": "*composed", "value": "~11"}, +// {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, +// {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, +// {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"}, +// {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"}, +// {"tag": "QueueLength", "field_id": "QueueLength", "type": "*variable", "value": "~4"}, +// {"tag": "TTL", "field_id": "TTL", "type": "*variable", "value": "~5"}, +// {"tag": "MinItems", "field_id": "MinItems", "type": "*variable", "value": "~6"}, +// {"tag": "MetricIDs", "field_id": "MetricIDs", "type": "*variable", "value": "~7"}, +// {"tag": "MetricFilterIDs", "field_id": "MetricFilterIDs", "type": "*variable", "value": "~8"}, +// {"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~9"}, +// {"tag": "Stored", "field_id": "Stored", "type": "*variable", "value": "~10"}, +// {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~11"}, +// {"tag": "ThresholdIDs", "field_id": "ThresholdIDs", "type": "*variable", "value": "~12"}, // ], // }, // { // "type": "*thresholds", // data source type // "file_name": "Thresholds.csv", // file name in the tp_in_dir // "fields": [ -// {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, -// {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, -// {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~2"}, -// {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~3"}, -// {"tag": "MaxHits", "field_id": "MaxHits", "type": "*composed", "value": "~4"}, -// {"tag": "MinHits", "field_id": "MinHits", "type": "*composed", "value": "~5"}, -// {"tag": "MinSleep", "field_id": "MinSleep", "type": "*composed", "value": "~6"}, -// {"tag": "Blocker", "field_id": "Blocker", "type": "*composed", "value": "~7"}, -// {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~8"}, -// {"tag": "ActionIDs", "field_id": "ActionIDs", "type": "*composed", "value": "~9"}, -// {"tag": "Async", "field_id": "Async", "type": "*composed", "value": "~10"}, +// {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, +// {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, +// {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"}, +// {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"}, +// {"tag": "MaxHits", "field_id": "MaxHits", "type": "*variable", "value": "~4"}, +// {"tag": "MinHits", "field_id": "MinHits", "type": "*variable", "value": "~5"}, +// {"tag": "MinSleep", "field_id": "MinSleep", "type": "*variable", "value": "~6"}, +// {"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~7"}, +// {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~8"}, +// {"tag": "ActionIDs", "field_id": "ActionIDs", "type": "*variable", "value": "~9"}, +// {"tag": "Async", "field_id": "Async", "type": "*variable", "value": "~10"}, // ], // }, // { // "type": "*suppliers", // data source type // "file_name": "Suppliers.csv", // file name in the tp_in_dir // "fields": [ -// {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, -// {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, -// {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~2"}, -// {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~3"}, -// {"tag": "Sorting", "field_id": "Sorting", "type": "*composed", "value": "~4"}, -// {"tag": "SortingParamameters", "field_id": "SortingParamameters", "type": "*composed", "value": "~5"}, -// {"tag": "SupplierID", "field_id": "SupplierID", "type": "*composed", "value": "~6"}, -// {"tag": "SupplierFilterIDs", "field_id": "SupplierFilterIDs", "type": "*composed", "value": "~7"}, -// {"tag": "SupplierAccountIDs", "field_id": "SupplierAccountIDs", "type": "*composed", "value": "~8"}, -// {"tag": "SupplierRatingPlanIDs", "field_id": "SupplierRatingPlanIDs", "type": "*composed", "value": "~9"}, -// {"tag": "SupplierResourceIDs", "field_id": "SupplierResourceIDs", "type": "*composed", "value": "~10"}, -// {"tag": "SupplierStatIDs", "field_id": "SupplierStatIDs", "type": "*composed", "value": "~11"}, -// {"tag": "SupplierWeight", "field_id": "SupplierWeight", "type": "*composed", "value": "~12"}, -// {"tag": "SupplierBlocker", "field_id": "SupplierBlocker", "type": "*composed", "value": "~13"}, -// {"tag": "SupplierParameters", "field_id": "SupplierParameters", "type": "*composed", "value": "~14"}, -// {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~15"}, +// {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, +// {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, +// {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"}, +// {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"}, +// {"tag": "Sorting", "field_id": "Sorting", "type": "*variable", "value": "~4"}, +// {"tag": "SortingParamameters", "field_id": "SortingParamameters", "type": "*variable", "value": "~5"}, +// {"tag": "SupplierID", "field_id": "SupplierID", "type": "*variable", "value": "~6"}, +// {"tag": "SupplierFilterIDs", "field_id": "SupplierFilterIDs", "type": "*variable", "value": "~7"}, +// {"tag": "SupplierAccountIDs", "field_id": "SupplierAccountIDs", "type": "*variable", "value": "~8"}, +// {"tag": "SupplierRatingPlanIDs", "field_id": "SupplierRatingPlanIDs", "type": "*variable", "value": "~9"}, +// {"tag": "SupplierResourceIDs", "field_id": "SupplierResourceIDs", "type": "*variable", "value": "~10"}, +// {"tag": "SupplierStatIDs", "field_id": "SupplierStatIDs", "type": "*variable", "value": "~11"}, +// {"tag": "SupplierWeight", "field_id": "SupplierWeight", "type": "*variable", "value": "~12"}, +// {"tag": "SupplierBlocker", "field_id": "SupplierBlocker", "type": "*variable", "value": "~13"}, +// {"tag": "SupplierParameters", "field_id": "SupplierParameters", "type": "*variable", "value": "~14"}, +// {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~15"}, // ], // }, // { // "type": "*chargers", // data source type // "file_name": "Chargers.csv", // file name in the tp_in_dir // "fields": [ -// {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, -// {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, -// {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~2"}, -// {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~3"}, -// {"tag": "RunID", "field_id": "RunID", "type": "*composed", "value": "~4"}, -// {"tag": "AttributeIDs", "field_id": "AttributeIDs", "type": "*composed", "value": "~5"}, -// {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~6"}, +// {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, +// {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, +// {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"}, +// {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"}, +// {"tag": "RunID", "field_id": "RunID", "type": "*variable", "value": "~4"}, +// {"tag": "AttributeIDs", "field_id": "AttributeIDs", "type": "*variable", "value": "~5"}, +// {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~6"}, // ], // }, // { // "type": "*dispatchers", // data source type // "file_name": "DispatcherProfiles.csv", // file name in the tp_in_dir // "fields": [ -// {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, -// {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, -// {"tag": "Contexts", "field_id": "Contexts", "type": "*composed", "value": "~2"}, -// {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~3"}, -// {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~4"}, -// {"tag": "Strategy", "field_id": "Strategy", "type": "*composed", "value": "~5"}, -// {"tag": "StrategyParameters", "field_id": "StrategyParameters", "type": "*composed", "value": "~6"}, -// {"tag": "ConnID", "field_id": "ConnID", "type": "*composed", "value": "~7"}, -// {"tag": "ConnFilterIDs", "field_id": "ConnFilterIDs", "type": "*composed", "value": "~8"}, -// {"tag": "ConnWeight", "field_id": "ConnWeight", "type": "*composed", "value": "~9"}, -// {"tag": "ConnBlocker", "field_id": "ConnBlocker", "type": "*composed", "value": "~10"}, -// {"tag": "ConnParameters", "field_id": "ConnParameters", "type": "*composed", "value": "~11"}, -// {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~12"}, +// {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, +// {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, +// {"tag": "Contexts", "field_id": "Contexts", "type": "*variable", "value": "~2"}, +// {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~3"}, +// {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~4"}, +// {"tag": "Strategy", "field_id": "Strategy", "type": "*variable", "value": "~5"}, +// {"tag": "StrategyParameters", "field_id": "StrategyParameters", "type": "*variable", "value": "~6"}, +// {"tag": "ConnID", "field_id": "ConnID", "type": "*variable", "value": "~7"}, +// {"tag": "ConnFilterIDs", "field_id": "ConnFilterIDs", "type": "*variable", "value": "~8"}, +// {"tag": "ConnWeight", "field_id": "ConnWeight", "type": "*variable", "value": "~9"}, +// {"tag": "ConnBlocker", "field_id": "ConnBlocker", "type": "*variable", "value": "~10"}, +// {"tag": "ConnParameters", "field_id": "ConnParameters", "type": "*variable", "value": "~11"}, +// {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~12"}, // ], // }, // { // "type": "*dispatcher_hosts", // data source type // "file_name": "DispatcherHosts.csv", // file name in the tp_in_dir // "fields": [ -// {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, -// {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, -// {"tag": "Address", "field_id": "Address", "type": "*composed", "value": "~2"}, -// {"tag": "Transport", "field_id": "Transport", "type": "*composed", "value": "~3"}, -// {"tag": "TLS", "field_id": "TLS", "type": "*composed", "value": "~4"}, +// {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, +// {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, +// {"tag": "Address", "field_id": "Address", "type": "*variable", "value": "~2"}, +// {"tag": "Transport", "field_id": "Transport", "type": "*variable", "value": "~3"}, +// {"tag": "TLS", "field_id": "TLS", "type": "*variable", "value": "~4"}, // ], // }, // ], @@ -759,6 +763,7 @@ // "scheduler_conns": [ // connections to SchedulerS for reloads // {"address": "*internal"} // ], +// "attributes_conns": [], // connections to AttributeS for CDRExporter // }, } diff --git a/data/conf/samples/loaders/tutmongo/cgrates.json b/data/conf/samples/loaders/tutmongo/cgrates.json index ae0280593..fb5b2a6a2 100644 --- a/data/conf/samples/loaders/tutmongo/cgrates.json +++ b/data/conf/samples/loaders/tutmongo/cgrates.json @@ -136,17 +136,17 @@ "type": "*attributes", // data source type "file_name": "Attributes.csv", // file name in the tp_in_dir "fields": [ - {"tag": "TenantID", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, - {"tag": "ProfileID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, - {"tag": "Contexts", "field_id": "Contexts", "type": "*composed", "value": "~2"}, - {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~3"}, - {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~4"}, - {"tag": "AttributeFilterIDs", "field_id": "AttributeFilterIDs", "type": "*composed", "value": "~5"}, - {"tag": "FieldName", "field_id": "FieldName", "type": "*composed", "value": "~6"}, - {"tag": "Type", "field_id": "Type", "type": "*composed", "value": "~7"}, - {"tag": "Value", "field_id": "Value", "type": "*composed", "value": "~8"}, - {"tag": "Blocker", "field_id": "Blocker", "type": "*composed", "value": "~9"}, - {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~10"}, + {"tag": "TenantID", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, + {"tag": "ProfileID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, + {"tag": "Contexts", "field_id": "Contexts", "type": "*variable", "value": "~2"}, + {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~3"}, + {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~4"}, + {"tag": "AttributeFilterIDs", "field_id": "AttributeFilterIDs", "type": "*variable", "value": "~5"}, + {"tag": "FieldName", "field_id": "FieldName", "type": "*variable", "value": "~6"}, + {"tag": "Type", "field_id": "Type", "type": "*variable", "value": "~7"}, + {"tag": "Value", "field_id": "Value", "type": "*variable", "value": "~8"}, + {"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~9"}, + {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~10"}, ], }, ], diff --git a/data/conf/samples/loaders/tutmysql/cgrates.json b/data/conf/samples/loaders/tutmysql/cgrates.json index cb6125280..ef35d8492 100644 --- a/data/conf/samples/loaders/tutmysql/cgrates.json +++ b/data/conf/samples/loaders/tutmysql/cgrates.json @@ -87,17 +87,17 @@ "type": "*attributes", // data source type "file_name": "Attributes.csv", // file name in the tp_in_dir "fields": [ - {"tag": "TenantID", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, - {"tag": "ProfileID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, - {"tag": "Contexts", "field_id": "Contexts", "type": "*composed", "value": "~2"}, - {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~3"}, - {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~4"}, - {"tag": "AttributeFilterIDs", "field_id": "AttributeFilterIDs", "type": "*composed", "value": "~5"}, - {"tag": "FieldName", "field_id": "FieldName", "type": "*composed", "value": "~6"}, - {"tag": "Type", "field_id": "Type", "type": "*composed", "value": "~7"}, - {"tag": "Value", "field_id": "Value", "type": "*composed", "value": "~8"}, - {"tag": "Blocker", "field_id": "Blocker", "type": "*composed", "value": "~9"}, - {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~10"}, + {"tag": "TenantID", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, + {"tag": "ProfileID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, + {"tag": "Contexts", "field_id": "Contexts", "type": "*variable", "value": "~2"}, + {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~3"}, + {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~4"}, + {"tag": "AttributeFilterIDs", "field_id": "AttributeFilterIDs", "type": "*variable", "value": "~5"}, + {"tag": "FieldName", "field_id": "FieldName", "type": "*variable", "value": "~6"}, + {"tag": "Type", "field_id": "Type", "type": "*variable", "value": "~7"}, + {"tag": "Value", "field_id": "Value", "type": "*variable", "value": "~8"}, + {"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~9"}, + {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~10"}, ], }, ], diff --git a/data/conf/samples/tutmysql_internal/cgrates.json b/data/conf/samples/tutmysql_internal/cgrates.json index a3ad06606..2c12c8f3b 100644 --- a/data/conf/samples/tutmysql_internal/cgrates.json +++ b/data/conf/samples/tutmysql_internal/cgrates.json @@ -86,75 +86,75 @@ "type": "*resources", // data source type "file_name": "Resources.csv", // file name in the tp_in_dir "fields": [ - {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, - {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, - {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~2"}, - {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~3"}, - {"tag": "TTL", "field_id": "UsageTTL", "type": "*composed", "value": "~4"}, - {"tag": "Limit", "field_id": "Limit", "type": "*composed", "value": "~5"}, - {"tag": "AllocationMessage", "field_id": "AllocationMessage", "type": "*composed", "value": "~6"}, - {"tag": "Blocker", "field_id": "Blocker", "type": "*composed", "value": "~7"}, - {"tag": "Stored", "field_id": "Stored", "type": "*composed", "value": "~8"}, - {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~9"}, - {"tag": "ThresholdIDs", "field_id": "ThresholdIDs", "type": "*composed", "value": "~10"}, + {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, + {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, + {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"}, + {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"}, + {"tag": "TTL", "field_id": "UsageTTL", "type": "*variable", "value": "~4"}, + {"tag": "Limit", "field_id": "Limit", "type": "*variable", "value": "~5"}, + {"tag": "AllocationMessage", "field_id": "AllocationMessage", "type": "*variable", "value": "~6"}, + {"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~7"}, + {"tag": "Stored", "field_id": "Stored", "type": "*variable", "value": "~8"}, + {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~9"}, + {"tag": "ThresholdIDs", "field_id": "ThresholdIDs", "type": "*variable", "value": "~10"}, ], }, { "type": "*stats", // data source type "file_name": "Stats.csv", // file name in the tp_in_dir "fields": [ - {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, - {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, - {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~2"}, - {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~3"}, - {"tag": "QueueLength", "field_id": "QueueLength", "type": "*composed", "value": "~4"}, - {"tag": "TTL", "field_id": "TTL", "type": "*composed", "value": "~5"}, - {"tag": "Metrics", "field_id": "Metrics", "type": "*composed", "value": "~6"}, - {"tag": "MetricParams", "field_id": "Parameters", "type": "*composed", "value": "~7"}, - {"tag": "Blocker", "field_id": "Blocker", "type": "*composed", "value": "~8"}, - {"tag": "Stored", "field_id": "Stored", "type": "*composed", "value": "~9"}, - {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~10"}, - {"tag": "MinItems", "field_id": "MinItems", "type": "*composed", "value": "~11"}, - {"tag": "ThresholdIDs", "field_id": "ThresholdIDs", "type": "*composed", "value": "~12"}, + {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, + {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, + {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"}, + {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"}, + {"tag": "QueueLength", "field_id": "QueueLength", "type": "*variable", "value": "~4"}, + {"tag": "TTL", "field_id": "TTL", "type": "*variable", "value": "~5"}, + {"tag": "Metrics", "field_id": "Metrics", "type": "*variable", "value": "~6"}, + {"tag": "MetricParams", "field_id": "Parameters", "type": "*variable", "value": "~7"}, + {"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~8"}, + {"tag": "Stored", "field_id": "Stored", "type": "*variable", "value": "~9"}, + {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~10"}, + {"tag": "MinItems", "field_id": "MinItems", "type": "*variable", "value": "~11"}, + {"tag": "ThresholdIDs", "field_id": "ThresholdIDs", "type": "*variable", "value": "~12"}, ], }, { "type": "*thresholds", // data source type "file_name": "Thresholds.csv", // file name in the tp_in_dir "fields": [ - {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, - {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, - {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~2"}, - {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~3"}, - {"tag": "MaxHits", "field_id": "MaxHits", "type": "*composed", "value": "~4"}, - {"tag": "MinHits", "field_id": "MinHits", "type": "*composed", "value": "~5"}, - {"tag": "MinSleep", "field_id": "MinSleep", "type": "*composed", "value": "~6"}, - {"tag": "Blocker", "field_id": "Blocker", "type": "*composed", "value": "~7"}, - {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~8"}, - {"tag": "ActionIDs", "field_id": "ActionIDs", "type": "*composed", "value": "~9"}, - {"tag": "Async", "field_id": "Async", "type": "*composed", "value": "~10"}, + {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, + {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, + {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"}, + {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"}, + {"tag": "MaxHits", "field_id": "MaxHits", "type": "*variable", "value": "~4"}, + {"tag": "MinHits", "field_id": "MinHits", "type": "*variable", "value": "~5"}, + {"tag": "MinSleep", "field_id": "MinSleep", "type": "*variable", "value": "~6"}, + {"tag": "Blocker", "field_id": "Blocker", "type": "*variable", "value": "~7"}, + {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~8"}, + {"tag": "ActionIDs", "field_id": "ActionIDs", "type": "*variable", "value": "~9"}, + {"tag": "Async", "field_id": "Async", "type": "*variable", "value": "~10"}, ], }, { "type": "*suppliers", // data source type "file_name": "Suppliers.csv", // file name in the tp_in_dir "fields": [ - {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, - {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, - {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*composed", "value": "~2"}, - {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~3"}, - {"tag": "Sorting", "field_id": "Sorting", "type": "*composed", "value": "~4"}, - {"tag": "SortingParamameters", "field_id": "SortingParamameters", "type": "*composed", "value": "~5"}, - {"tag": "SupplierID", "field_id": "SupplierID", "type": "*composed", "value": "~6"}, - {"tag": "SupplierFilterIDs", "field_id": "SupplierFilterIDs", "type": "*composed", "value": "~7"}, - {"tag": "SupplierAccountIDs", "field_id": "SupplierAccountIDs", "type": "*composed", "value": "~8"}, - {"tag": "SupplierRatingPlanIDs", "field_id": "SupplierRatingPlanIDs", "type": "*composed", "value": "~9"}, - {"tag": "SupplierResourceIDs", "field_id": "SupplierResourceIDs", "type": "*composed", "value": "~10"}, - {"tag": "SupplierStatIDs", "field_id": "SupplierStatIDs", "type": "*composed", "value": "~11"}, - {"tag": "SupplierWeight", "field_id": "SupplierWeight", "type": "*composed", "value": "~12"}, - {"tag": "SupplierBlocker", "field_id": "SupplierBlocker", "type": "*composed", "value": "~13"}, - {"tag": "SupplierParameters", "field_id": "SupplierParameters", "type": "*composed", "value": "~14"}, - {"tag": "Weight", "field_id": "Weight", "type": "*composed", "value": "~15"}, + {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, + {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, + {"tag": "FilterIDs", "field_id": "FilterIDs", "type": "*variable", "value": "~2"}, + {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~3"}, + {"tag": "Sorting", "field_id": "Sorting", "type": "*variable", "value": "~4"}, + {"tag": "SortingParamameters", "field_id": "SortingParamameters", "type": "*variable", "value": "~5"}, + {"tag": "SupplierID", "field_id": "SupplierID", "type": "*variable", "value": "~6"}, + {"tag": "SupplierFilterIDs", "field_id": "SupplierFilterIDs", "type": "*variable", "value": "~7"}, + {"tag": "SupplierAccountIDs", "field_id": "SupplierAccountIDs", "type": "*variable", "value": "~8"}, + {"tag": "SupplierRatingPlanIDs", "field_id": "SupplierRatingPlanIDs", "type": "*variable", "value": "~9"}, + {"tag": "SupplierResourceIDs", "field_id": "SupplierResourceIDs", "type": "*variable", "value": "~10"}, + {"tag": "SupplierStatIDs", "field_id": "SupplierStatIDs", "type": "*variable", "value": "~11"}, + {"tag": "SupplierWeight", "field_id": "SupplierWeight", "type": "*variable", "value": "~12"}, + {"tag": "SupplierBlocker", "field_id": "SupplierBlocker", "type": "*variable", "value": "~13"}, + {"tag": "SupplierParameters", "field_id": "SupplierParameters", "type": "*variable", "value": "~14"}, + {"tag": "Weight", "field_id": "Weight", "type": "*variable", "value": "~15"}, ], }, ], @@ -176,12 +176,12 @@ "type": "*filters", // data source type "file_name": "Filters.csv", // file name in the tp_in_dir "fields": [ - {"tag": "Tenant", "field_id": "Tenant", "type": "*composed", "value": "~0", "mandatory": true}, - {"tag": "ID", "field_id": "ID", "type": "*composed", "value": "~1", "mandatory": true}, - {"tag": "FilterType", "field_id": "FilterType", "type": "*composed", "value": "~2"}, - {"tag": "FilterFieldName", "field_id": "FilterFieldName", "type": "*composed", "value": "~3"}, - {"tag": "FilterFieldValues", "field_id": "FilterFieldValues", "type": "*composed", "value": "~4"}, - {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*composed", "value": "~5"}, + {"tag": "Tenant", "field_id": "Tenant", "type": "*variable", "value": "~0", "mandatory": true}, + {"tag": "ID", "field_id": "ID", "type": "*variable", "value": "~1", "mandatory": true}, + {"tag": "FilterType", "field_id": "FilterType", "type": "*variable", "value": "~2"}, + {"tag": "FilterFieldName", "field_id": "FilterFieldName", "type": "*variable", "value": "~3"}, + {"tag": "FilterFieldValues", "field_id": "FilterFieldValues", "type": "*variable", "value": "~4"}, + {"tag": "ActivationInterval", "field_id": "ActivationInterval", "type": "*variable", "value": "~5"}, ], }, ], diff --git a/integration_test.sh b/integration_test.sh index e1fee7356..d10a75ec5 100755 --- a/integration_test.sh +++ b/integration_test.sh @@ -35,5 +35,8 @@ mgr=$? echo 'go test github.com/cgrates/cgrates/dispatchers -tags=integration' go test github.com/cgrates/cgrates/dispatchers -tags=integration dis=$? +echo 'go test github.com/cgrates/cgrates/loaders -tags=integration' +go test github.com/cgrates/cgrates/loaders -tags=integration +lds=$? -exit $gen && $ap1 && $ap2 && $en && $cdrc && $cfg && $utl && $gnr && $agts && $smg && $mgr && $dis +exit $gen && $ap1 && $ap2 && $en && $cdrc && $cfg && $utl && $gnr && $agts && $smg && $mgr && $dis && $lds diff --git a/loaders/libloader.go b/loaders/libloader.go index 9f4f3b101..01edf3a0d 100644 --- a/loaders/libloader.go +++ b/loaders/libloader.go @@ -65,6 +65,8 @@ func (ld LoaderData) UpdateFromCSV(fileName string, record []string, valOrig += out ld[cfgFld.FieldId] = valOrig } + case utils.MetaVariable: + ld[cfgFld.FieldId] = out case utils.MetaString: if _, has := ld[cfgFld.FieldId]; !has { ld[cfgFld.FieldId] = out diff --git a/loaders/libloader_test.go b/loaders/libloader_test.go index 16af81b2b..168aabf0f 100644 --- a/loaders/libloader_test.go +++ b/loaders/libloader_test.go @@ -116,6 +116,96 @@ func TestDataUpdateFromCSVOneFile(t *testing.T) { } } +func TestDataUpdateFromCSVOneFile2(t *testing.T) { + attrSFlds := []*config.FCTemplate{ + &config.FCTemplate{Tag: "TenantID", + FieldId: "Tenant", + Type: utils.MetaVariable, + Value: config.NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), + Mandatory: true}, + &config.FCTemplate{Tag: "ProfileID", + FieldId: "ID", + Type: utils.MetaVariable, + Value: config.NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), + Mandatory: true}, + &config.FCTemplate{Tag: "Contexts", + FieldId: "Contexts", + Type: utils.MetaVariable, + Value: config.NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP)}, + &config.FCTemplate{Tag: "FilterIDs", + FieldId: "FilterIDs", + Type: utils.MetaVariable, + Value: config.NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP)}, + &config.FCTemplate{Tag: "ActivationInterval", + FieldId: "ActivationInterval", + Type: utils.MetaVariable, + Value: config.NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP)}, + &config.FCTemplate{Tag: "FieldName", + FieldId: "FieldName", + Type: utils.MetaVariable, + Value: config.NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP)}, + &config.FCTemplate{Tag: "Initial", + FieldId: "Initial", + Type: utils.MetaVariable, + Value: config.NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP)}, + &config.FCTemplate{Tag: "Substitute", + FieldId: "Substitute", + Type: utils.MetaVariable, + Value: config.NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP)}, + &config.FCTemplate{Tag: "Append", + FieldId: "Append", + Type: utils.MetaVariable, + Value: config.NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP)}, + &config.FCTemplate{Tag: "Weight", + FieldId: "Weight", + Type: utils.MetaVariable, + Value: config.NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP)}, + } + + rows := [][]string{ + []string{"cgrates.org", "ATTR_1", "*sessions;*cdrs", "*string:Account:1007", "2014-01-14T00:00:00Z", "Account", "*any", "1001", "false", "10"}, + []string{"cgrates.org", "ATTR_1", "", "", "", "Subject", "*any", "1001", "true", ""}, + } + lData := make(LoaderData) + if err := lData.UpdateFromCSV("Attributes.csv", rows[0], attrSFlds, + config.NewRSRParsersMustCompile("cgrates.org", true, utils.INFIELD_SEP), nil); err != nil { + t.Error(err) + } + eLData := LoaderData{"Tenant": "cgrates.org", + "ID": "ATTR_1", + "Contexts": "*sessions;*cdrs", + "FilterIDs": "*string:Account:1007", + "ActivationInterval": "2014-01-14T00:00:00Z", + "FieldName": "Account", + "Initial": "*any", + "Substitute": "1001", + "Append": "false", + "Weight": "10", + } + if !reflect.DeepEqual(eLData, lData) { + t.Errorf("expecting: %+v, received: %+v", eLData, lData) + } + lData = make(LoaderData) + if err := lData.UpdateFromCSV("Attributes.csv", rows[1], attrSFlds, + config.NewRSRParsersMustCompile("cgrates.org", true, utils.INFIELD_SEP), nil); err != nil { + t.Error(err) + } + eLData = LoaderData{"Tenant": "cgrates.org", + "ID": "ATTR_1", + "Contexts": "", + "FilterIDs": "", + "ActivationInterval": "", + "FieldName": "Subject", + "Initial": "*any", + "Substitute": "1001", + "Append": "true", + "Weight": "", + } + if !reflect.DeepEqual(eLData, lData) { + t.Errorf("expecting: %+v, received: %+v", eLData, lData) + } +} + func TestDataUpdateFromCSVMultiFiles(t *testing.T) { attrSFlds := []*config.FCTemplate{ &config.FCTemplate{Tag: "TenantID",