try:
my.ovim.net_update_ofc_thread(net_id)
except ovim.ovimException as e:
- raise ovim.ovimException("http_post_servers, Error updating network with id '{}', '{}'".
- format(net_id, str(e)), HTTP_Internal_Server_Error)
- except Exception as e:
- raise ovim.ovimException("http_post_servers, Error updating network with id '{}', '{}'".
- format(net_id, str(e)), HTTP_Internal_Server_Error)
+ my.logger.error("http_post_servers, Error updating network with id '{}', '{}'".format(net_id, str(e)))
# look for dhcp ip address
r2, c2 = my.db.get_table(FROM="ports", SELECT=["mac", "ip_address", "net_id"], WHERE={"instance_id": new_instance})
return http_get_image_id(tenant_id, image_uuid)
#Update DB only for CREATING or DELETING status
- data={'result' : 'in process'}
+ data={'result' : 'deleting in process'}
+ warn_text=""
if new_status != None and new_status == 'DELETING':
nets=[]
ports_to_free=[]
for port in ports_to_free:
r1,c1 = config_dic['host_threads'][ server['host_id'] ].insert_task( 'restore-iface',*port )
if r1 < 0:
- print ' http_post_server_action error at server deletion ERROR resore-iface !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' + c1
- data={'result' : 'deleting in process, but ifaces cannot be restored!!!!!'}
+ my.logger.error("http_post_server_action server deletion ERROR at resore-iface!!!! " + c1)
+ warn_text += "; Error iface '{}' cannot be restored '{}'".format(str(port), str(e))
for net_id in nets:
try:
my.ovim.net_update_ofc_thread(net_id)
except ovim.ovimException as e:
- raise ovim.ovimException("http_post_servers, Error updating network with id '{}', '{}'".
- format(net_id, str(e)), HTTP_Internal_Server_Error)
- except Exception as e:
- raise ovim.ovimException("http_post_server_action error at server deletion "
- "ERROR UPDATING NET '{}', '{}'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!".
- format(net_id, str(e)), HTTP_Internal_Server_Error)
-
- data = {'result': 'deleting in process, but openflow rules cannot be deleted!!!!!'}
+ my.logger.error("http_server_action, Error updating network with id '{}', '{}'".format(net_id, str(e)))
+ warn_text += "; Error openflow rules of network '{}' cannot be restore '{}'".format(net_id, str (e))
# look for dhcp ip address
if r2 >0 and config_dic.get("dhcp_server"):
delete_dhcp_ovs_bridge(vlan, net_id)
delete_mac_dhcp(vm_ip, vlan, mac)
config_dic['host_threads'][server['host_id']].insert_task('del-ovs-port', vlan, net_id)
- return format_out(data)
+ return format_out(data + warn_text)
data = {'result': str(result) + " nets updates"}
return format_out(data)
-
+@bottle.route(url_base + '/networks/clear/openflow/<ofc_id>', method='DELETE')
@bottle.route(url_base + '/networks/clear/openflow', method='DELETE')
-def http_clear_openflow_rules():
+def http_clear_openflow_rules(ofc_id=None):
"""
To make actions over the net. The action is to delete ALL openflow rules
:return:
if not my.admin:
bottle.abort(HTTP_Unauthorized, "Needed admin privileges")
try:
- my.ovim.delete_openflow_rules()
+ my.ovim.delete_openflow_rules(ofc_id)
except ovim.ovimException as e:
my.logger.error(str(e), exc_info=True)
bottle.abort(e.http_code, str(e))
data = {'result': " Clearing openflow rules in process"}
return format_out(data)
-
+@bottle.route(url_base + '/networks/openflow/ports/<ofc_id>', method='GET')
@bottle.route(url_base + '/networks/openflow/ports', method='GET')
-def http_get_openflow_ports():
+def http_get_openflow_ports(ofc_id=None):
"""
Obtain switch ports names of openflow controller
:return:
"""
my = config_dic['http_threads'][threading.current_thread().name]
- ports = my.ovim.get_openflow_ports()
- data = {'ports': ports}
+
+ try:
+ ports = my.ovim.get_openflow_ports(ofc_id)
+ data = {'ports': ports}
+ except ovim.ovimException as e:
+ my.logger.error(str(e), exc_info=True)
+ bottle.abort(e.http_code, str(e))
+ except Exception as e:
+ my.logger.error(str(e), exc_info=True)
+ bottle.abort(HTTP_Bad_Request, str(e))
+
return format_out(data)
#
# PORTS