summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
36c0b17)
Signed-off-by: tierno <alfonso.tiernosepulveda@telefonica.com>
import socket
import select
import threading
import socket
import select
import threading
class ConsoleProxyException(Exception):
class ConsoleProxyException(Exception):
buffer_size = 4096
check_finish = 1 #frequency to check if requested to end in seconds
buffer_size = 4096
check_finish = 1 #frequency to check if requested to end in seconds
- def __init__(self, host, port, console_host, console_port):
+ def __init__(self, host, port, console_host, console_port, log_level=None):
try:
threading.Thread.__init__(self)
self.console_host = console_host
try:
threading.Thread.__init__(self)
self.console_host = console_host
self.input_list = [self.server]
self.channel = {}
self.terminate = False #put at True from outside to force termination
self.input_list = [self.server]
self.channel = {}
self.terminate = False #put at True from outside to force termination
+ self.logger = logging.getLogger('openmano.console')
+ if log_level:
+ self.logger.setLevel( getattr(logging, log_level) )
+
except (socket.error, socket.herror, socket.gaierror, socket.timeout) as e:
if e is socket.error and e.errno==98:
raise ConsoleProxyExceptionPortUsed("socket.error " + str(e))
except (socket.error, socket.herror, socket.gaierror, socket.timeout) as e:
if e is socket.error and e.errno==98:
raise ConsoleProxyExceptionPortUsed("socket.error " + str(e))
try:
inputready, _, _ = select.select(self.input_list, [], [], self.check_finish)
except select.error as e:
try:
inputready, _, _ = select.select(self.input_list, [], [], self.check_finish)
except select.error as e:
- print self.name, ": Exception on select %s: %s" % (type(e).__name__, str(e) )
+ self.logger.error("Exception on select %s: %s", type(e).__name__, str(e) )
self.on_terminate()
if self.terminate:
self.on_terminate()
self.on_terminate()
if self.terminate:
self.on_terminate()
- print self.name, ": Terminate because commanded"
+ self.logger.debug("Terminate because commanded")
break
for sock in inputready:
break
for sock in inputready:
try:
clientsock, clientaddr = self.server.accept()
except (socket.error, socket.herror, socket.gaierror, socket.timeout) as e:
try:
clientsock, clientaddr = self.server.accept()
except (socket.error, socket.herror, socket.gaierror, socket.timeout) as e:
- print self.name, ": Exception on_accept %s: %s" % (type(e).__name__, str(e) )
+ self.logger.error("Exception on_accept %s: %s", type(e).__name__, str(e) )
return False
#print self.name, ": Accept new client ", clientaddr
return False
#print self.name, ": Accept new client ", clientaddr
forward.connect((self.console_host, self.console_port))
name = "%s:%d => (%s:%d => %s:%d) => %s:%d" %\
(clientsock.getpeername() + clientsock.getsockname() + forward.getsockname() + forward.getpeername() )
forward.connect((self.console_host, self.console_port))
name = "%s:%d => (%s:%d => %s:%d) => %s:%d" %\
(clientsock.getpeername() + clientsock.getsockname() + forward.getsockname() + forward.getpeername() )
- print self.name, ": new connection " + name
+ self.logger.warn("new connection " + name)
self.input_list.append(clientsock)
self.input_list.append(forward)
self.input_list.append(clientsock)
self.input_list.append(forward)
self.channel[forward] = info
return True
except (socket.error, socket.herror, socket.gaierror, socket.timeout) as e:
self.channel[forward] = info
return True
except (socket.error, socket.herror, socket.gaierror, socket.timeout) as e:
- print self.name, ": Exception on_connect to server %s:%d; %s: %s" % (self.console_host, self.console_port, type(e).__name__, str(e) )
- print self.name, ": Close client side ", clientaddr
+ self.logger.error("Exception on_connect to server %s:%d; %s: %s Close client side %s",
+ self.console_host, self.console_port, type(e).__name__, str(e), str(clientaddr) )
clientsock.close()
return False
clientsock.close()
return False
info = self.channel[sock]
#debug info
sockname = "client" if sock is info["clientsock"] else "server"
info = self.channel[sock]
#debug info
sockname = "client" if sock is info["clientsock"] else "server"
- print self.name, ": del connection %s %s at %s side" % (info["name"], cause, sockname)
+ self.logger.warn("del connection %s %s at %s side", info["name"], str(cause), str(sockname) )
#close sockets
try:
# close the connection with client
info["clientsock"].close() # equivalent to do self.s.close()
except (socket.error, socket.herror, socket.gaierror, socket.timeout) as e:
#close sockets
try:
# close the connection with client
info["clientsock"].close() # equivalent to do self.s.close()
except (socket.error, socket.herror, socket.gaierror, socket.timeout) as e:
- print self.name, ": Exception on_close client socket %s: %s" % (type(e).__name__, str(e) )
+ self.logger.error("Exception on_close client socket %s: %s", type(e).__name__, str(e) )
try:
# close the connection with remote server
info["serversock"].close()
except (socket.error, socket.herror, socket.gaierror, socket.timeout) as e:
try:
# close the connection with remote server
info["serversock"].close()
except (socket.error, socket.herror, socket.gaierror, socket.timeout) as e:
- print self.name, ": Exception on_close server socket %s: %s" % (type(e).__name__, str(e) )
+ self.logger.error("Exception on_close server socket %s: %s", type(e).__name__, str(e) )
#remove objects from input_list
self.input_list.remove(info["clientsock"])
#remove objects from input_list
self.input_list.remove(info["clientsock"])
"log_level_vim": log_level_schema,
"log_level_nfvo": log_level_schema,
"log_level_http": log_level_schema,
"log_level_vim": log_level_schema,
"log_level_nfvo": log_level_schema,
"log_level_http": log_level_schema,
+ "log_level_console": log_level_schema,
"log_file_db": path_schema,
"log_file_vim": path_schema,
"log_file_nfvo": path_schema,
"log_file_http": path_schema,
"log_file_db": path_schema,
"log_file_vim": path_schema,
"log_file_nfvo": path_schema,
"log_file_http": path_schema,
+ "log_file_console": path_schema,
"log_socket_host": nameshort_schema,
"log_socket_port": port_schema,
"log_file": path_schema,
"log_socket_host": nameshort_schema,
"log_socket_port": port_schema,
"log_file": path_schema,
#log_level_vim: DEBUG #VIM connection log levels
#log_file_vim: /opt/openmano/logs/openmano_vimconn.log
#log_level_nfvo: DEBUG #Main engine log levels
#log_level_vim: DEBUG #VIM connection log levels
#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_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
+#log_level_console: DEBUG #proxy console log levels
+#log_file_console: /opt/openmano/logs/openmano_console.log
#Uncomment to send logs via IP to an external host
#log_socket_host: localhost
#Uncomment to send logs via IP to an external host
#log_socket_host: localhost
logger.critical("Starting openmano server version: '%s %s' command: '%s'",
__version__, version_date, " ".join(sys.argv))
logger.critical("Starting openmano server version: '%s %s' command: '%s'",
__version__, version_date, " ".join(sys.argv))
- for log_module in ("nfvo", "http", "vim", "db"):
+ for log_module in ("nfvo", "http", "vim", "db", "console"):
log_level_module = "log_level_" + log_module
log_file_module = "log_file_" + log_module
logger_module = logging.getLogger('openmano.' + log_module)
log_level_module = "log_level_" + log_module
log_file_module = "log_file_" + log_module
logger_module = logging.getLogger('openmano.' + log_module)