diff --git a/data/storage/postgres/create_tariffplan_tables.sql b/data/storage/postgres/create_tariffplan_tables.sql
index 217dc0954..3fd24f317 100644
--- a/data/storage/postgres/create_tariffplan_tables.sql
+++ b/data/storage/postgres/create_tariffplan_tables.sql
@@ -207,14 +207,14 @@ CREATE INDEX tp_routes_unique ON tp_routes ("tpid", "tenant", "id",
"id" varchar(64) NOT NULL,
"address" varchar(64) NOT NULL,
"transport" varchar(64) NOT NULL,
- `connect_attempts` INTEGER NOT NULL,
- `reconnects` INTEGER NOT NULL,
- `connect_timeout` varchar(64) NOT NULL,
- `reply_timeout` varchar(64) NOT NULL,
- `tls` BOOLEAN NOT NULL,
- `client_key` varchar(64) NOT NULL,
- `client_certificate` varchar(64) NOT NULL,
- `ca_certificate` varchar(64) NOT NULL,
+ "connect_attempts" INTEGER NOT NULL,
+ "reconnects" INTEGER NOT NULL,
+ "connect_timeout" varchar(64) NOT NULL,
+ "reply_timeout" varchar(64) NOT NULL,
+ "tls" BOOLEAN NOT NULL,
+ "client_key" varchar(64) NOT NULL,
+ "client_certificate" varchar(64) NOT NULL,
+ "ca_certificate" varchar(64) NOT NULL,
"created_at" TIMESTAMP WITH TIME ZONE
);
CREATE INDEX tp_dispatchers_hosts_ids ON tp_dispatcher_hosts (tpid);
diff --git a/engine/z_versions_it_test.go b/engine/z_versions_it_test.go
index e478d9277..9ee492773 100644
--- a/engine/z_versions_it_test.go
+++ b/engine/z_versions_it_test.go
@@ -20,7 +20,10 @@ along with this program. If not, see
package engine
import (
+ "bytes"
+ "fmt"
"log"
+ "os/exec"
"path"
"testing"
@@ -51,7 +54,7 @@ func TestVersionsIT(t *testing.T) {
case utils.MetaMongo:
versionsConfigDIR = "tutmongo"
case utils.MetaPostgres:
- versionsConfigDIR = "storage/postgres"
+ versionsConfigDIR = "tutpostgres"
default:
t.Fatal("Unknown Database type")
}
@@ -197,3 +200,323 @@ func testVersion(t *testing.T) {
}
}
+
+func testUpdateVersionsAccounts(t *testing.T) {
+ newVersions := CurrentDataDBVersions()
+ newVersions[utils.Accounts] = 2
+ if err := dm3.DataDB().SetVersions(newVersions, true); err != nil {
+ t.Fatal(err)
+ }
+ cmd := exec.Command("cgr-engine", fmt.Sprintf(`-config_path=/usr/share/cgrates/conf/samples/%s`, versionsConfigDIR), `-scheduled_shutdown=4ms`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+ errExpect := "Migration needed: please backup cgr data and run : \n"
+ if output.String() != errExpect {
+ t.Fatalf("Expected %q \n but received: \n %q", errExpect, output.String())
+ }
+}
+
+func testUpdateVersionsActions(t *testing.T) {
+ newVersions := CurrentDataDBVersions()
+ newVersions[utils.Actions] = 1
+ if err := dm3.DataDB().SetVersions(newVersions, true); err != nil {
+ t.Fatal(err)
+ }
+ cmd := exec.Command("cgr-engine", fmt.Sprintf(`-config_path=/usr/share/cgrates/conf/samples/%s`, versionsConfigDIR), `-scheduled_shutdown=4ms`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+ errExpect := "Migration needed: please backup cgr data and run : \n"
+ if output.String() != errExpect {
+ t.Fatalf("Expected %q \n but received: \n %q", errExpect, output.String())
+ }
+}
+
+func testUpdateVersionsChargers(t *testing.T) {
+ newVersions := CurrentDataDBVersions()
+ newVersions[utils.Chargers] = 1
+ if err := dm3.DataDB().SetVersions(newVersions, true); err != nil {
+ t.Fatal(err)
+ }
+ cmd := exec.Command("cgr-engine", fmt.Sprintf(`-config_path=/usr/share/cgrates/conf/samples/%s`, versionsConfigDIR), `-scheduled_shutdown=4ms`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+ errExpect := "Migration needed: please backup cgr data and run : \n"
+ if output.String() != errExpect {
+ t.Fatalf("Expected %q \n but received: \n %q", errExpect, output.String())
+ }
+}
+
+func testUpdateVersionsDestinations(t *testing.T) {
+ newVersions := CurrentDataDBVersions()
+ newVersions[utils.Destination] = 0
+ if err := dm3.DataDB().SetVersions(newVersions, true); err != nil {
+ t.Fatal(err)
+ }
+ cmd := exec.Command("cgr-engine", fmt.Sprintf(`-config_path=/usr/share/cgrates/conf/samples/%s`, versionsConfigDIR), `-scheduled_shutdown=4ms`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+ errExpect := utils.EmptyString
+ if output.String() != errExpect {
+ t.Fatalf("Expected %q \n but received: \n %q", errExpect, output.String())
+ }
+}
+func testUpdateVersionsAttributes(t *testing.T) {
+ newVersions := CurrentDataDBVersions()
+ newVersions[utils.Attributes] = 3
+ if err := dm3.DataDB().SetVersions(newVersions, true); err != nil {
+ t.Fatal(err)
+ }
+ cmd := exec.Command("cgr-engine", fmt.Sprintf(`-config_path=/usr/share/cgrates/conf/samples/%s`, versionsConfigDIR), `-scheduled_shutdown=4ms`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+ errExpect := "Migration needed: please backup cgr data and run : \n"
+ if output.String() != errExpect {
+ t.Fatalf("Expected %q \n but received: \n %q", errExpect, output.String())
+ }
+}
+
+func testUpdateVersionsDispatchers(t *testing.T) {
+ newVersions := CurrentDataDBVersions()
+ newVersions[utils.Dispatchers] = 1
+ if err := dm3.DataDB().SetVersions(newVersions, true); err != nil {
+ t.Fatal(err)
+ }
+ cmd := exec.Command("cgr-engine", fmt.Sprintf(`-config_path=/usr/share/cgrates/conf/samples/%s`, versionsConfigDIR), `-scheduled_shutdown=4ms`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+ errExpect := "Migration needed: please backup cgr data and run : \n"
+ if output.String() != errExpect {
+ t.Fatalf("Expected %q \n but received: \n %q", errExpect, output.String())
+ }
+}
+
+func testUpdateVersionsLoadIDs(t *testing.T) {
+ newVersions := CurrentDataDBVersions()
+ delete(newVersions, utils.LoadIDsVrs)
+ if err := dm3.DataDB().SetVersions(newVersions, true); err != nil {
+ t.Fatal(err)
+ }
+ cmd := exec.Command("cgr-engine", fmt.Sprintf(`-config_path=/usr/share/cgrates/conf/samples/%s`, versionsConfigDIR), `-scheduled_shutdown=4ms`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+ errExpect := utils.EmptyString
+ if output.String() != errExpect {
+ t.Fatalf("Expected %q \n but received: \n %q", errExpect, output.String())
+ }
+}
+
+func testUpdateVersionsRQF(t *testing.T) {
+ newVersions := CurrentDataDBVersions()
+ newVersions[utils.RQF] = 2
+ if err := dm3.DataDB().SetVersions(newVersions, true); err != nil {
+ t.Fatal(err)
+ }
+ cmd := exec.Command("cgr-engine", fmt.Sprintf(`-config_path=/usr/share/cgrates/conf/samples/%s`, versionsConfigDIR), `-scheduled_shutdown=4ms`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+ errExpect := "Migration needed: please backup cgr data and run : \n"
+ if output.String() != errExpect {
+ t.Fatalf("Expected %q \n but received: \n %q", errExpect, output.String())
+ }
+}
+
+func testUpdateVersionsResource(t *testing.T) {
+ newVersions := CurrentDataDBVersions()
+ newVersions[utils.Resource] = 0
+ if err := dm3.DataDB().SetVersions(newVersions, true); err != nil {
+ t.Fatal(err)
+ }
+ cmd := exec.Command("cgr-engine", fmt.Sprintf(`-config_path=/usr/share/cgrates/conf/samples/%s`, versionsConfigDIR), `-scheduled_shutdown=4ms`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+ errExpect := utils.EmptyString
+ if output.String() != errExpect {
+ t.Fatalf("Expected %q \n but received: \n %q", errExpect, output.String())
+ }
+}
+
+func testUpdateVersionsRoutes(t *testing.T) {
+ newVersions := CurrentDataDBVersions()
+ newVersions[utils.Routes] = 1
+ if err := dm3.DataDB().SetVersions(newVersions, true); err != nil {
+ t.Fatal(err)
+ }
+ cmd := exec.Command("cgr-engine", fmt.Sprintf(`-config_path=/usr/share/cgrates/conf/samples/%s`, versionsConfigDIR), `-scheduled_shutdown=4ms`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+ errExpect := "Migration needed: please backup cgr data and run : \n"
+ if output.String() != errExpect {
+ t.Fatalf("Expected %q \n but received: \n %q", errExpect, output.String())
+ }
+}
+
+func testUpdateVersionsStats(t *testing.T) {
+ newVersions := CurrentDataDBVersions()
+ newVersions[utils.StatS] = 3
+ if err := dm3.DataDB().SetVersions(newVersions, true); err != nil {
+ t.Fatal(err)
+ }
+ cmd := exec.Command("cgr-engine", fmt.Sprintf(`-config_path=/usr/share/cgrates/conf/samples/%s`, versionsConfigDIR), `-scheduled_shutdown=4ms`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+ errExpect := "Migration needed: please backup cgr data and run : \n"
+ if output.String() != errExpect {
+ t.Fatalf("Expected %q \n but received: \n %q", errExpect, output.String())
+ }
+}
+
+func testUpdateVersionsSubscribers(t *testing.T) {
+ newVersions := CurrentDataDBVersions()
+ newVersions[utils.Subscribers] = 0
+ if err := dm3.DataDB().SetVersions(newVersions, true); err != nil {
+ t.Fatal(err)
+ }
+ cmd := exec.Command("cgr-engine", fmt.Sprintf(`-config_path=/usr/share/cgrates/conf/samples/%s`, versionsConfigDIR), `-scheduled_shutdown=4ms`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+ errExpect := utils.EmptyString
+ if output.String() != errExpect {
+ t.Fatalf("Expected %q \n but received: \n %q", errExpect, output.String())
+ }
+}
+
+func testUpdateVersionsThresholds(t *testing.T) {
+ newVersions := CurrentDataDBVersions()
+ newVersions[utils.Thresholds] = 2
+ if err := dm3.DataDB().SetVersions(newVersions, true); err != nil {
+ t.Fatal(err)
+ }
+ cmd := exec.Command("cgr-engine", fmt.Sprintf(`-config_path=/usr/share/cgrates/conf/samples/%s`, versionsConfigDIR), `-scheduled_shutdown=4ms`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+ errExpect := "Migration needed: please backup cgr data and run : \n"
+ if output.String() != errExpect {
+ t.Fatalf("Expected %q \n but received: \n %q", errExpect, output.String())
+ }
+}
+
+//Tests for StorDB
+func testUpdateVersionsCostDetails(t *testing.T) {
+ newVersions := CurrentStorDBVersions()
+ newVersions[utils.CostDetails] = 1
+ if err := storageDb.SetVersions(newVersions, true); err != nil {
+ t.Fatal(err)
+ }
+ cmd := exec.Command("cgr-engine", fmt.Sprintf(`-config_path=/usr/share/cgrates/conf/samples/%s`, versionsConfigDIR), `-scheduled_shutdown=4ms`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+ errExpect := "Migration needed: please backup cgr data and run : \n"
+ if output.String() != errExpect {
+ t.Fatalf("Expected %q \n but received: \n %q", errExpect, output.String())
+ }
+}
+
+func testUpdateVersionsSessionSCosts(t *testing.T) {
+ newVersions := CurrentStorDBVersions()
+ newVersions[utils.SessionSCosts] = 2
+ if err := storageDb.SetVersions(newVersions, true); err != nil {
+ t.Fatal(err)
+ }
+ cmd := exec.Command("cgr-engine", fmt.Sprintf(`-config_path=/usr/share/cgrates/conf/samples/%s`, versionsConfigDIR), `-scheduled_shutdown=4ms`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+ errExpect := "Migration needed: please backup cgr data and run : \n"
+ if output.String() != errExpect {
+ t.Fatalf("Expected %q \n but received: \n %q", errExpect, output.String())
+ }
+}
+
+func testUpdateVersionsCDRs(t *testing.T) {
+ newVersions := CurrentStorDBVersions()
+ newVersions[utils.CDRs] = 1
+ if err := storageDb.SetVersions(newVersions, true); err != nil {
+ t.Fatal(err)
+ }
+ cmd := exec.Command("cgr-engine", fmt.Sprintf(`-config_path=/usr/share/cgrates/conf/samples/%s`, versionsConfigDIR), `-scheduled_shutdown=4ms`)
+ output := bytes.NewBuffer(nil)
+ cmd.Stdout = output
+ if err := cmd.Run(); err != nil {
+ t.Log(cmd.Args)
+ t.Log(output.String())
+ t.Fatal(err)
+ }
+ errExpect := "Migration needed: please backup cgr data and run : \n"
+ if output.String() != errExpect {
+ t.Fatalf("Expected %q \n but received: \n %q", errExpect, output.String())
+ }
+}