From 138e3c025fe56056bf2bcb9f522eb49b4fc50887 Mon Sep 17 00:00:00 2001
From: Henrik Thostrup Jensen <htj@nordu.net>
Date: Tue, 28 Jan 2014 14:53:50 +0100
Subject: [PATCH] add symmetric, directionality, and connection traces to
 database

---
 datafiles/schema-delete.sql               | 1 +
 datafiles/schema.sql                      | 9 ++++++++-
 opennsa/aggregator.py                     | 3 ++-
 opennsa/backends/common/genericbackend.py | 2 +-
 4 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/datafiles/schema-delete.sql b/datafiles/schema-delete.sql
index 826eb156..0fc47985 100644
--- a/datafiles/schema-delete.sql
+++ b/datafiles/schema-delete.sql
@@ -4,5 +4,6 @@
 DROP TABLE generic_backend_connections;
 DROP TABLE sub_connections;
 DROP TABLE service_connections;
+DROP TYPE directionality;
 DROP TYPE label;
 
diff --git a/datafiles/schema.sql b/datafiles/schema.sql
index 363d4284..d0fbcf29 100644
--- a/datafiles/schema.sql
+++ b/datafiles/schema.sql
@@ -7,6 +7,8 @@ CREATE TYPE label AS (
     label_value     text
 );
 
+CREATE TYPE directionality AS ENUM ('Bidirectional', 'Unidirectional');
+
 
 -- publically reachable connections
 CREATE TABLE service_connections (
@@ -29,7 +31,10 @@ CREATE TABLE service_connections (
     dest_label              label,
     start_time              timestamp                   NOT NULL,
     end_time                timestamp                   NOT NULL,
-    bandwidth               integer                     NOT NULL -- mbps
+    symmetrical             boolean                     NOT NULL,
+    directionality          directionality              NOT NULL,
+    bandwidth               integer                     NOT NULL, -- mbps
+    connection_trace        text[]
 );
 
 -- internal references to connections that are part of a service connection
@@ -77,6 +82,8 @@ CREATE TABLE generic_backend_connections (
     dest_label              label,
     start_time              timestamp                   NOT NULL,
     end_time                timestamp                   NOT NULL,
+    symmetrical             boolean                     NOT NULL,
+    directionality          directionality              NOT NULL,
     bandwidth               integer                     NOT NULL -- mbps
 );
 
diff --git a/opennsa/aggregator.py b/opennsa/aggregator.py
index b44c20e4..e51102af 100644
--- a/opennsa/aggregator.py
+++ b/opennsa/aggregator.py
@@ -185,7 +185,8 @@ class Aggregator:
                             reservation_state=state.RESERVE_START, provision_state=state.RELEASED, lifecycle_state=state.CREATED,
                             source_network=source_stp.network, source_port=source_stp.port, source_label=source_stp.label,
                             dest_network=dest_stp.network, dest_port=dest_stp.port, dest_label=dest_stp.label,
-                            start_time=criteria.schedule.start_time, end_time=criteria.schedule.end_time, bandwidth=sd.capacity)
+                            start_time=criteria.schedule.start_time, end_time=criteria.schedule.end_time,
+                            symmetrical=sd.symmetric, directionality=sd.directionality, bandwidth=sd.capacity, connection_trace=header.connection_trace)
         yield conn.save()
 
         # Here we should return / callback and spawn off the path creation
diff --git a/opennsa/backends/common/genericbackend.py b/opennsa/backends/common/genericbackend.py
index 459ac7d6..cca27234 100644
--- a/opennsa/backends/common/genericbackend.py
+++ b/opennsa/backends/common/genericbackend.py
@@ -263,7 +263,7 @@ class GenericBackend(service.Service):
                                          source_network=source_stp.network, source_port=source_stp.port, source_label=src_label,
                                          dest_network=dest_stp.network, dest_port=dest_stp.port, dest_label=dst_label,
                                          start_time=schedule.start_time, end_time=schedule.end_time,
-                                         bandwidth=sd.capacity)
+                                         symmetrical=sd.symmetric, directionality=sd.directionality, bandwidth=sd.capacity)
         yield conn.save()
         reactor.callWhenRunning(self._doReserve, conn, header.correlation_id)
         defer.returnValue(connection_id)
-- 
GitLab