Adding support to different ingress and egress ports (SFC)
TODO: update VNFFG example.
Change-Id: I26cf6cc8760516203f8a4fa147bdcd2e00887d89
Signed-off-by: Eduardo Sousa <esousa@whitestack.com>
diff --git a/database_utils/migrate_mano_db.sh b/database_utils/migrate_mano_db.sh
index aa2e718..4819db4 100755
--- a/database_utils/migrate_mano_db.sh
+++ b/database_utils/migrate_mano_db.sh
@@ -34,7 +34,7 @@
DBNAME="mano_db"
QUIET_MODE=""
#TODO update it with the last database version
-LAST_DB_VERSION=34
+LAST_DB_VERSION=35
# Detect paths
MYSQL=$(which mysql)
@@ -203,6 +203,7 @@
#[ $OPENMANO_VER_NUM -ge 5070 ] && DB_VERSION=32 #0.5.70 => 32
#[ $OPENMANO_VER_NUM -ge 5082 ] && DB_VERSION=33 #0.5.82 => 33
#[ $OPENMANO_VER_NUM -ge 6000 ] && DB_VERSION=34 #0.6.00 => 34
+#[ $OPENMANO_VER_NUM -ge 6001 ] && DB_VERSION=35 #0.6.01 => 35
#TODO ... put next versions here
function upgrade_to_1(){
@@ -1296,20 +1297,18 @@
}
function upgrade_to_33(){
- echo " Add PDU information to 'vms"
+ echo " Add PDU information to 'vms'"
sql "ALTER TABLE vms ADD COLUMN pdu_type VARCHAR(255) NULL DEFAULT NULL AFTER osm_id;"
sql "ALTER TABLE instance_nets ADD COLUMN vim_name VARCHAR(255) NULL DEFAULT NULL AFTER vim_net_id;"
sql "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) "\
"VALUES (33, '0.33', '0.5.82', 'Add pdu information to vms', '2018-11-13');"
}
function downgrade_from_33(){
- echo " Remove back PDU information from' vms'"
+ echo " Remove back PDU information from 'vms'"
sql "ALTER TABLE vms DROP COLUMN pdu_type;"
sql "ALTER TABLE instance_nets DROP COLUMN vim_name;"
sql "DELETE FROM schema_version WHERE version_int='33';"
}
-
-
function upgrade_to_X(){
echo " change 'datacenter_nets'"
sql "ALTER TABLE datacenter_nets ADD COLUMN vim_tenant_id VARCHAR(36) NOT NULL AFTER datacenter_id, DROP INDEX name_datacenter_id, ADD UNIQUE INDEX name_datacenter_id (name, datacenter_id, vim_tenant_id);"
@@ -1318,19 +1317,26 @@
echo " Change back 'datacenter_nets'"
sql "ALTER TABLE datacenter_nets DROP COLUMN vim_tenant_id, DROP INDEX name_datacenter_id, ADD UNIQUE INDEX name_datacenter_id (name, datacenter_id);"
}
-
function upgrade_to_34() {
echo " Create databases required for WIM features"
script="$(find "${DBUTILS}/migrations/up" -iname "34*.sql" | tail -1)"
sql "source ${script}"
}
-
function downgrade_from_34() {
echo " Drop databases required for WIM features"
script="$(find "${DBUTILS}/migrations/down" -iname "34*.sql" | tail -1)"
sql "source ${script}"
}
-
+function upgrade_to_35(){
+ echo " Create databases required for WIM features"
+ script="$(find "${DBUTILS}/migrations/up" -iname "35*.sql" | tail -1)"
+ sql "source ${script}"
+}
+function downgrade_from_35(){
+ echo " Drop databases required for WIM features"
+ script="$(find "${DBUTILS}/migrations/down" -iname "35*.sql" | tail -1)"
+ sql "source ${script}"
+}
#TODO ... put functions here
# echo "db version = "${DATABASE_VER_NUM}
diff --git a/database_utils/migrations/down/35_remove_sfc_ingress_and_egress.sql b/database_utils/migrations/down/35_remove_sfc_ingress_and_egress.sql
new file mode 100644
index 0000000..01f38f4
--- /dev/null
+++ b/database_utils/migrations/down/35_remove_sfc_ingress_and_egress.sql
@@ -0,0 +1,16 @@
+--
+-- Removing ingress and egress ports for SFC purposes.
+-- Inserting only one port for ingress and egress.
+--
+
+ALTER TABLE sce_rsp_hops
+ DROP FOREIGN KEY FK_interfaces_rsp_hop_ingress,
+ CHANGE COLUMN ingress_interface_id interface_id VARCHAR(36) NOT NULL
+ AFTER if_order,
+ ADD CONSTRAINT FK_interfaces_rsp_hop
+ FOREIGN KEY (interface_id)
+ REFERENCES interfaces (uuid) ON UPDATE CASCADE ON DELETE CASCADE,
+ DROP FOREIGN KEY FK_interfaces_rsp_hop_egress,
+ DROP COLUMN egress_interface_id;
+
+DELETE FROM schema_version WHERE version_int='35';
diff --git a/database_utils/migrations/up/35_add_sfc_ingress_and_egress.sql b/database_utils/migrations/up/35_add_sfc_ingress_and_egress.sql
new file mode 100644
index 0000000..b528c6d
--- /dev/null
+++ b/database_utils/migrations/up/35_add_sfc_ingress_and_egress.sql
@@ -0,0 +1,29 @@
+--
+-- Adding different ingress and egress ports for SFC.
+--
+
+ALTER TABLE sce_rsp_hops
+ DROP FOREIGN KEY FK_interfaces_rsp_hop,
+ CHANGE COLUMN interface_id ingress_interface_id VARCHAR(36) NOT NULL
+ AFTER if_order,
+ ADD CONSTRAINT FK_interfaces_rsp_hop_ingress
+ FOREIGN KEY (ingress_interface_id)
+ REFERENCES interfaces (uuid) ON UPDATE CASCADE ON DELETE CASCADE,
+ ADD COLUMN egress_interface_id VARCHAR(36) NULL DEFAULT NULL
+ AFTER ingress_interface_id;
+
+UPDATE sce_rsp_hops
+ SET egress_interface_id = ingress_interface_id;
+
+ALTER TABLE sce_rsp_hops
+ ALTER COLUMN egress_interface_id DROP DEFAULT;
+
+ALTER TABLE sce_rsp_hops
+ MODIFY COLUMN egress_interface_id VARCHAR(36) NOT NULL
+ AFTER ingress_interface_id,
+ ADD CONSTRAINT FK_interfaces_rsp_hop_egress
+ FOREIGN KEY (egress_interface_id)
+ REFERENCES interfaces (uuid) ON UPDATE CASCADE ON DELETE CASCADE;
+
+INSERT INTO schema_version (version_int, version, openmano_ver, comments, date)
+ VALUES (35, '0.35', '0.6.02', 'Adding ingress and egress ports for RSPs', '2018-12-11');