Merge "new option --screen at basictest to force launching in a screen"
diff --git a/database_utils/init_mano_db.sh b/database_utils/init_mano_db.sh
index 9fc9b75..224269b 100755
--- a/database_utils/init_mano_db.sh
+++ b/database_utils/init_mano_db.sh
@@ -98,7 +98,7 @@
DBPORT_="-P$DBPORT"
TEMPFILE="$(mktemp -q --tmpdir "initmanodb.XXXXXX")"
-trap 'rm -f "$TEMPFILE"' EXIT SIGINT SIGTERM
+trap 'rm -f "$TEMPFILE"' EXIT
chmod 0600 "$TEMPFILE"
cat >"$TEMPFILE" <<EOF
[client]
diff --git a/database_utils/migrate_mano_db.sh b/database_utils/migrate_mano_db.sh
index 4131c9c..447eb81 100755
--- a/database_utils/migrate_mano_db.sh
+++ b/database_utils/migrate_mano_db.sh
@@ -111,7 +111,7 @@
#Creating temporary file
TEMPFILE="$(mktemp -q --tmpdir "migratemanodb.XXXXXX")"
-trap 'rm -f "$TEMPFILE"' EXIT SIGINT SIGTERM
+trap 'rm -f "$TEMPFILE"' EXIT
chmod 0600 "$TEMPFILE"
cat >"$TEMPFILE" <<EOF
[client]
@@ -182,6 +182,7 @@
[ $OPENMANO_VER_NUM -ge 4043 ] && DATABASE_TARGET_VER_NUM=11 #0.4.43=> 11
[ $OPENMANO_VER_NUM -ge 4046 ] && DATABASE_TARGET_VER_NUM=12 #0.4.46=> 12
[ $OPENMANO_VER_NUM -ge 4047 ] && DATABASE_TARGET_VER_NUM=13 #0.4.47=> 13
+[ $OPENMANO_VER_NUM -ge 4057 ] && DATABASE_TARGET_VER_NUM=14 #0.4.57=> 14
#TODO ... put next versions here
@@ -625,6 +626,20 @@
echo "DELETE FROM schema_version WHERE version_int='13';" | $DBCMD || ! echo "ERROR. Aborted!" || exit -1
}
+function upgrade_to_14(){
+ echo " upgrade database from version 0.13 to version 0.14"
+ echo " remove unique index vim_net_id, instance_scenario_id at table 'instance_nets'"
+ echo "ALTER TABLE instance_nets DROP INDEX vim_net_id_instance_scenario_id;" | $DBCMD || ! echo "ERROR. Aborted!" || exit -1
+ echo "ALTER TABLE instance_nets CHANGE COLUMN external created ENUM('true','false') NOT NULL DEFAULT 'false' COMMENT 'Created or already exists at VIM' AFTER multipoint;" | $DBCMD || ! echo "ERROR. Aborted!" || exit -1
+ echo "INSERT INTO schema_version (version_int, version, openmano_ver, comments, date) VALUES (14, '0.14', '0.4.57', 'remove unique index vim_net_id, instance_scenario_id', '2016-09-26');" | $DBCMD || ! echo "ERROR. Aborted!" || exit -1
+}
+function downgrade_from_14(){
+ echo " downgrade database from version 0.14 to version 0.13"
+ echo " remove cloud_config at 'scenarios', 'instance_scenarios'"
+ echo "ALTER TABLE instance_nets ADD UNIQUE INDEX vim_net_id_instance_scenario_id (vim_net_id, instance_scenario_id);" | $DBCMD || ! echo "ERROR. Aborted!" || exit -1
+ echo "ALTER TABLE instance_nets CHANGE COLUMN created external ENUM('true','false') NOT NULL DEFAULT 'false' COMMENT 'If external, means that it already exists at VIM' AFTER multipoint;" | $DBCMD || ! echo "ERROR. Aborted!" || exit -1
+ echo "DELETE FROM schema_version WHERE version_int='14';" | $DBCMD || ! echo "ERROR. Aborted!" || exit -1
+}
function upgrade_to_X(){
echo " change 'datacenter_nets'"
diff --git a/db_base.py b/db_base.py
index 265752f..f6a5c59 100644
--- a/db_base.py
+++ b/db_base.py
@@ -141,7 +141,7 @@
class db_base():
tables_with_created_field=()
- def __init__(self, host=None, user=None, passwd=None, database=None, log_name='db', log_level="ERROR"):
+ def __init__(self, host=None, user=None, passwd=None, database=None, log_name='db', log_level=None):
self.host = host
self.user = user
self.passwd = passwd
@@ -149,7 +149,8 @@
self.con = None
self.log_level=log_level
self.logger = logging.getLogger(log_name)
- self.logger.setLevel( getattr(logging, log_level) )
+ if self.log_level:
+ self.logger.setLevel( getattr(logging, log_level) )
def connect(self, host=None, user=None, passwd=None, database=None):
'''Connect to specific data base.
diff --git a/nfvo.py b/nfvo.py
index c27c51e..dd3eb55 100644
--- a/nfvo.py
+++ b/nfvo.py
@@ -1320,6 +1320,7 @@
sce_net['vim_id'] = network_id
auxNetDict['scenario'][sce_net['uuid']] = network_id
rollbackList.append({'what':'network','where':'vim','vim_id':datacenter_id,'uuid':network_id})
+ sce_net["created"] = True
else:
if sce_net['vim_id'] == None:
error_text = "Error, datacenter '%s' does not have external network '%s'." % (datacenter_name, sce_net['name'])
@@ -1353,6 +1354,7 @@
auxNetDict[sce_vnf['uuid']] = {}
auxNetDict[sce_vnf['uuid']][net['uuid']] = network_id
rollbackList.append({'what':'network','where':'vim','vim_id':datacenter_id,'uuid':network_id})
+ net["created"] = True
#print "auxNetDict:"
#print yaml.safe_dump(auxNetDict, indent=4, default_flow_style=False)
@@ -1820,6 +1822,7 @@
sce_net["vim_id_sites"][datacenter_id] = network_id
auxNetDict['scenario'][sce_net['uuid']][datacenter_id] = network_id
rollbackList.append({'what':'network', 'where':'vim', 'vim_id':datacenter_id, 'uuid':network_id})
+ sce_net["created"] = True
#2. Creating new nets (vnf internal nets) in the VIM"
#For each vnf net, we create it and we add it to instanceNetlist.
@@ -1843,6 +1846,8 @@
auxNetDict[sce_vnf['uuid']] = {}
auxNetDict[sce_vnf['uuid']][net['uuid']] = network_id
rollbackList.append({'what':'network','where':'vim','vim_id':datacenter_id,'uuid':network_id})
+ net["created"] = True
+
#print "auxNetDict:"
#print yaml.safe_dump(auxNetDict, indent=4, default_flow_style=False)
@@ -2014,7 +2019,7 @@
#2.2 deleting NETS
#net_fail_list=[]
for net in instanceDict['nets']:
- if net['external']:
+ if not net['created']:
continue #skip not created nets
if not myvim:
continue
@@ -2080,7 +2085,7 @@
if iface["type"]=="mgmt":
has_mgmt_iface = True
if vm_dict[vm_id]['status'] == "ACTIVE:NoMgmtIP" and not has_mgmt_iface:
- vm_dict[vm_id]['status'] = "ACTIVE"
+ vm_dict[vm_id]['status'] = "ACTIVE"
if vm['status'] != vm_dict[vm_id]['status'] or vm.get('error_msg')!=vm_dict[vm_id].get('error_msg') or vm.get('vim_info')!=vm_dict[vm_id].get('vim_info'):
vm['status'] = vm_dict[vm_id]['status']
vm['error_msg'] = vm_dict[vm_id].get('error_msg')
@@ -2096,16 +2101,16 @@
# 2.2. Update in openmano DB the interface VMs
for interface in interfaces:
#translate from vim_net_id to instance_net_id
- network_id=None
+ network_id_list=[]
for net in instanceDict['nets']:
if net["vim_net_id"] == interface["vim_net_id"]:
- network_id = net["uuid"]
- break
- if not network_id:
+ network_id_list.append(net["uuid"])
+ if not network_id_list:
continue
del interface["vim_net_id"]
- try:
- mydb.update_rows('instance_interfaces', UPDATE=interface, WHERE={'instance_vm_id':vm["uuid"], "instance_net_id":network_id})
+ try:
+ for network_id in network_id_list:
+ mydb.update_rows('instance_interfaces', UPDATE=interface, WHERE={'instance_vm_id':vm["uuid"], "instance_net_id":network_id})
except db_base_Exception as e:
logger.error( "nfvo.refresh_instance error with vm=%s, interface_net_id=%s", vm["uuid"], network_id)
diff --git a/nfvo_db.py b/nfvo_db.py
index 5b47f1d..9d3b648 100644
--- a/nfvo_db.py
+++ b/nfvo_db.py
@@ -39,7 +39,7 @@
"sce_vnfs","tenants_datacenters","datacenter_tenants","vms","vnfs", "datacenter_nets"]
class nfvo_db(db_base.db_base):
- def __init__(self, host=None, user=None, passwd=None, database=None, log_name='openmano.db', log_level="ERROR"):
+ def __init__(self, host=None, user=None, passwd=None, database=None, log_name='openmano.db', log_level=None):
db_base.db_base.__init__(self, host, user, passwd, database, log_name, log_level)
db_base.db_base.tables_with_created_field=tables_with_createdat_field
return
@@ -776,7 +776,7 @@
sce_net_id = net.get("uuid")
for datacenter_site_id,vim_id in net["vim_id_sites"].iteritems():
- INSERT_={'vim_net_id': vim_id, 'external': net['external'], 'instance_scenario_id':instance_uuid } #, 'type': net['type']
+ INSERT_={'vim_net_id': vim_id, 'created': net.get('created', False), 'instance_scenario_id':instance_uuid } #, 'type': net['type']
INSERT_['datacenter_id'] = datacenter_site_id
INSERT_['datacenter_tenant_id'] = net.get('datacenter_tenant_id', datacenter_tenant_id) #TODO revise
if sce_net_id:
@@ -809,7 +809,7 @@
#instance_nets #nets intraVNF
for net in vnf['nets']:
net_scene2instance[ net['uuid'] ] = {}
- INSERT_={'vim_net_id': net['vim_id'], 'external': 'false', 'instance_scenario_id':instance_uuid } #, 'type': net['type']
+ INSERT_={'vim_net_id': net['vim_id'], 'created': net.get('created', False), 'instance_scenario_id':instance_uuid } #, 'type': net['type']
INSERT_['datacenter_id'] = net.get('datacenter_id', datacenter_site_id)
INSERT_['datacenter_tenant_id'] = net.get('datacenter_tenant_id', datacenter_site_tenant_id)
if net.get("uuid"):
@@ -935,7 +935,7 @@
#from_text = "instance_nets join instance_scenarios on instance_nets.instance_scenario_id=instance_scenarios.uuid " + \
# "join sce_nets on instance_scenarios.scenario_id=sce_nets.scenario_id"
#where_text = "instance_nets.instance_scenario_id='"+ instance_dict['uuid'] + "'"
- cmd = "SELECT uuid,vim_net_id,status,error_msg,vim_info,external, sce_net_id, net_id as vnf_net_id, datacenter_id, datacenter_tenant_id"\
+ cmd = "SELECT uuid,vim_net_id,status,error_msg,vim_info,created, sce_net_id, net_id as vnf_net_id, datacenter_id, datacenter_tenant_id"\
" FROM instance_nets" \
" WHERE instance_scenario_id='{}' ORDER BY created_at".format(instance_dict['uuid'])
self.logger.debug(cmd)
@@ -943,7 +943,7 @@
instance_dict['nets'] = self.cur.fetchall()
db_base._convert_datetime2str(instance_dict)
- db_base._convert_str2boolean(instance_dict, ('public','shared','external') )
+ db_base._convert_str2boolean(instance_dict, ('public','shared','created') )
return instance_dict
except (mdb.Error, AttributeError) as e:
self._format_error(e, tries)
diff --git a/openmano b/openmano
index 9697bbc..818e717 100755
--- a/openmano
+++ b/openmano
@@ -28,8 +28,8 @@
'''
__author__="Alfonso Tierno, Gerardo Garcia"
__date__ ="$09-oct-2014 09:09:48$"
-__version__="0.4.5-r489"
-version_date="Aug 2016"
+__version__="0.4.6-r500"
+version_date="Sep 2016"
from argcomplete.completers import FilesCompleter
import os
@@ -742,12 +742,12 @@
print "---------------------------------------"
print "Internal nets:"
for net in instance['nets']:
- if not net['external']:
+ if net['created']:
print " %s %s VIM ID: %s" %(net['uuid'].ljust(38), net['status'].ljust(12), net['vim_net_id'])
print "---------------------------------------"
print "External nets:"
for net in instance['nets']:
- if net['external']:
+ if not net['created']:
print " %s %s VIM ID: %s" %(net['uuid'].ljust(38), net['status'].ljust(12), net['vim_net_id'])
print "---------------------------------------"
print "VM instances:"
diff --git a/openmanod.cfg b/openmanod.cfg
index 1a10191..4ae845b 100644
--- a/openmanod.cfg
+++ b/openmanod.cfg
@@ -51,21 +51,21 @@
#vnf_repository: "./vnfrepo" # Use an absolute path to avoid misunderstandings
-#logging parameters for internal file stororage
+#general logging parameters
#choose among: DEBUG, INFO, WARNING, ERROR, CRITICAL
log_level: DEBUG #general log levels for internal logging
#standard output is used unless 'log_file' is specify
#log_file: /var/log/openmano/openmano.log
-#individual loggin settings
+#individual logging settings
#log_level_db: DEBUG #database log levels
-log_file_db: /opt/openmano/logs/openmano_db.log
+#log_file_db: /opt/openmano/logs/openmano_db.log
#log_level_vim: DEBUG #VIM connection log levels
-log_file_vim: /opt/openmano/logs/openmano_vimconn.log
+#log_file_vim: /opt/openmano/logs/openmano_vimconn.log
#log_level_nfvo: DEBUG #Main engine log levels
-log_file_nfvo: /opt/openmano/logs/openmano_nfvo.log
+#log_file_nfvo: /opt/openmano/logs/openmano_nfvo.log
#log_level_http: DEBUG #Main engine log levels
-log_file_http: /opt/openmano/logs/openmano_http.log
+#log_file_http: /opt/openmano/logs/openmano_http.log
#Uncomment to send logs via IP to an external host
#log_socket_host: localhost
diff --git a/openmanod.py b/openmanod.py
index 5b67cf0..2becccf 100755
--- a/openmanod.py
+++ b/openmanod.py
@@ -33,9 +33,9 @@
'''
__author__="Alfonso Tierno, Gerardo Garcia, Pablo Montes"
__date__ ="$26-aug-2014 11:09:29$"
-__version__="0.4.55-r497"
+__version__="0.4.58-r501"
version_date="Sep 2016"
-database_version="0.13" #expected database schema version
+database_version="0.14" #expected database schema version
import httpserver
import time
@@ -62,9 +62,6 @@
'http_console_proxy': True,
'http_console_host': None,
'log_level': 'DEBUG',
- 'log_level_db': 'ERROR',
- 'log_level_vimconn': 'DEBUG',
- 'log_level_nfvo': 'DEBUG',
'log_socket_port': 9022,
}
try:
@@ -259,7 +256,7 @@
#nfvo.logger = global_config["logger_nfvo"]
# Initialize DB connection
- mydb = nfvo_db.nfvo_db(log_level=global_config["log_level_db"]);
+ mydb = nfvo_db.nfvo_db();
if mydb.connect(global_config['db_host'], global_config['db_user'], global_config['db_passwd'], global_config['db_name']) == -1:
logger.critical("Cannot connect to database %s at %s@%s", global_config['db_name'], global_config['db_user'], global_config['db_host'])
exit(-1)
diff --git a/scripts/install-openmano.sh b/scripts/install-openmano.sh
index 9ffcdab..d46b22b 100755
--- a/scripts/install-openmano.sh
+++ b/scripts/install-openmano.sh
@@ -267,7 +267,7 @@
#################################################################'
echo -e "\nCreating temporary file form MYSQL installation and initialization"
TEMPFILE="$(mktemp -q --tmpdir "installopenmano.XXXXXX")"
-trap 'rm -f "$TEMPFILE"' EXIT SIGINT SIGTERM
+trap 'rm -f "$TEMPFILE"' EXIT
chmod 0600 "$TEMPFILE"
cat >"$TEMPFILE" <<EOF
[client]