From 2c72e2e7c08e8e145e95e8e3ae4e97bf45723d8a Mon Sep 17 00:00:00 2001 From: Radu Ioan Fericean Date: Wed, 30 Jul 2014 19:14:18 +0300 Subject: [PATCH] more regexp fixes --- engine/loader_csv.go | 7 ++++++- engine/loader_helpers.go | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/engine/loader_csv.go b/engine/loader_csv.go index 49906960f..4b8c45dfc 100644 --- a/engine/loader_csv.go +++ b/engine/loader_csv.go @@ -767,9 +767,14 @@ func (csvr *CSVReader) LoadActionTriggers() (err error) { if err != nil { return fmt.Errorf("Could not parse action trigger recurrent flag (%v): %v", record[5], err) } + minSleep, err := time.ParseDuration(record[6]) if err != nil { - return fmt.Errorf("Could not parse action trigger MinSleep (%v): %v", record[6], err) + if record[6] == "" { + minSleep = 0 + } else { + return fmt.Errorf("Could not parse action trigger MinSleep (%v): %v", record[6], err) + } } balanceWeight, err := strconv.ParseFloat(record[8], 64) if record[8] != "" && err != nil { diff --git a/engine/loader_helpers.go b/engine/loader_helpers.go index 0efa83187..444458758 100644 --- a/engine/loader_helpers.go +++ b/engine/loader_helpers.go @@ -340,8 +340,8 @@ var FileValidators = map[string]*FileLineRegexValidator{ utils.ACTION_PLANS_CSV: &FileLineRegexValidator{utils.ACTION_PLANS_NRCOLS, regexp.MustCompile(`(?:\w+\s*,\s*){3}(?:\d+\.?\d*){1}`), "Tag([0-9A-Za-z_]),ActionsTag([0-9A-Za-z_]),TimingTag([0-9A-Za-z_]),Weight([0-9.])"}, - utils.ACTION_TRIGGERS_CSV: &FileLineRegexValidator{utils.ACTION_TRIGGERS_NRCOLS, regexp.MustCompile(`(?:\w+),(?:\*\w+),(?:\*out),(?:\*\w+),(?:\d+\.?\d*),(?:true|false)?,(?:\d+),(?:\w+|\*any)?,(?:\d+\.?\d*)?,(?:\*\w+\s*|\+\d+[smh]\s*|\d+\s*)?,(?:\w+|\*any)?,(?:\w+|\*any)?,(?:\d+)?,(?:\w+),(?:\d+\.?\d*)$`), - "Tag([0-9A-Za-z_]),BalanceType(*[a-z_]),Direction(*out),ThresholdType(*[a-z_]),ThresholdValue([0-9]+),Recurrent(true|false),MinSleep([0-9]+),BalanceDestinationTag([0-9A-Za-z_]|*all),BalanceWeight(*[a-z_]),BalanceExpiryTime(*[a-z_]|+[0-9][smh]|[0-9]),BalanceRatingSubject(*[a-z_]),BalanceSharedGroup(*[a-z_]),StatsMinQueuedItems([0-9]+),ActionsTag([0-9A-Za-z_]),Weight([0-9]+)"}, + utils.ACTION_TRIGGERS_CSV: &FileLineRegexValidator{utils.ACTION_TRIGGERS_NRCOLS, regexp.MustCompile(`(?:\w+),(?:\*\w+),(?:\*out),(?:\*\w+),(?:\d+\.?\d*),(?:true|false)?,(?:\d+[smh]?),(?:\w+|\*any)?,(?:\d+\.?\d*)?,(?:\*\w+\s*|\+\d+[smh]\s*|\d+\s*)?,(?:\w+|\*any)?,(?:\w+|\*any)?,(?:\d+)?,(?:\w+),(?:\d+\.?\d*)$`), + "Tag([0-9A-Za-z_]),BalanceType(*[a-z_]),Direction(*out),ThresholdType(*[a-z_]),ThresholdValue([0-9]+),Recurrent(true|false),MinSleep([0-9]+)?,BalanceDestinationTag([0-9A-Za-z_]|*all),BalanceWeight(*[a-z_]),BalanceExpiryTime(*[a-z_]|+[0-9][smh]|[0-9]),BalanceRatingSubject(*[a-z_]),BalanceSharedGroup(*[a-z_]),StatsMinQueuedItems([0-9]+),ActionsTag([0-9A-Za-z_]),Weight([0-9]+)"}, utils.ACCOUNT_ACTIONS_CSV: &FileLineRegexValidator{utils.ACCOUNT_ACTIONS_NRCOLS, regexp.MustCompile(`(?:\w+\s*),(?:(\w+;?)+\s*),(?:\*out\s*),(?:\w+\s*),(?:\w+\s*)$`), "Tenant([0-9A-Za-z_]),Account([0-9A-Za-z_.]),Direction(*out),ActionTimingsTag([0-9A-Za-z_]),ActionTriggersTag([0-9A-Za-z_])"},