From 2c0d42e0da43e0a446d2c577003334670e5d6842 Mon Sep 17 00:00:00 2001 From: ibuler Date: Wed, 25 Nov 2015 18:59:12 +0800 Subject: [PATCH 1/3] fix some bug --- connect.py | 5 ++++- jumpserver.conf | 2 +- run_websocket.py | 11 +++++++--- templates/jasset/asset_list.html | 23 +++++++++++++++++---- templates/jperm/perm_rule_add.html | 32 ------------------------------ 5 files changed, 32 insertions(+), 41 deletions(-) diff --git a/connect.py b/connect.py index de2e18bdb..a9c15f750 100644 --- a/connect.py +++ b/connect.py @@ -204,6 +204,7 @@ class Tty(object): log.save() log_file_f.write('Start at %s\n' % datetime.datetime.now()) + log_time_f.write('0.0000 ') return log_file_f, log_time_f, log def get_connect_info(self): @@ -325,7 +326,7 @@ class SshTty(Tty): sys.stdout.write(x) sys.stdout.flush() now_timestamp = time.time() - log_time_f.write('%s %s\n' % (round(now_timestamp-pre_timestamp, 4), len(x))) + log_time_f.write('%s\n%s ' % (len(x), round(now_timestamp-pre_timestamp, 4))) log_file_f.write(x) pre_timestamp = now_timestamp log_file_f.flush() @@ -362,8 +363,10 @@ class SshTty(Tty): finally: termios.tcsetattr(sys.stdin, termios.TCSADRAIN, old_tty) + log_time_f.write('0') log_file_f.write('End time is %s' % datetime.datetime.now()) log_file_f.close() + log_time_f.close() log.is_finished = True log.end_time = datetime.datetime.now() log.save() diff --git a/jumpserver.conf b/jumpserver.conf index 41894e0d9..6297ab00a 100644 --- a/jumpserver.conf +++ b/jumpserver.conf @@ -13,7 +13,7 @@ password = mysql234 database = jumpserver [websocket] -web_socket_host = js:3000 +web_socket_host = j:3000 [mail] mail_enable = 1 diff --git a/run_websocket.py b/run_websocket.py index 168d50ba9..77c3f8096 100644 --- a/run_websocket.py +++ b/run_websocket.py @@ -275,8 +275,11 @@ class WebTerminalHandler(tornado.websocket.WebSocketHandler): for t in WebTerminalHandler.tasks: if t.is_alive(): continue - t.setDaemon(True) - t.start() + try: + t.setDaemon(True) + t.start() + except RuntimeError: + pass def on_message(self, message): data = json.loads(message) @@ -309,6 +312,8 @@ class WebTerminalHandler(tornado.websocket.WebSocketHandler): self.log.is_finished = True self.log.end_time = datetime.datetime.now() self.log.save() + self.log_time_f.write('0') + self.log_time_f.close() self.close() except AttributeError: pass @@ -331,7 +336,7 @@ class WebTerminalHandler(tornado.websocket.WebSocketHandler): try: self.write_message(json.dumps({'data': data})) now_timestamp = time.time() - self.log_time_f.write('%s %s\n' % (round(now_timestamp-pre_timestamp, 4), len(data))) + self.log_time_f.write('%s\n%s ' % (len(data), round(now_timestamp-pre_timestamp, 4))) self.log_file_f.write(data) pre_timestamp = now_timestamp self.log_file_f.flush() diff --git a/templates/jasset/asset_list.html b/templates/jasset/asset_list.html index 28ab2523e..1dc6b5aab 100644 --- a/templates/jasset/asset_list.html +++ b/templates/jasset/asset_list.html @@ -182,8 +182,15 @@ success: function(data){ var dataArray = data.split(','); if (dataArray.length == 1 && data != 'error'){ - console.log('one'); - window.open(new_url + data, '', 'height=400, width=600, top=89px, left=99px,toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no'); + layer.open({ + type: 2, + title: 'Jumpserver Web Terminal', + maxmin: true, + shade: false, + area: ['628px', '452px'], + content: new_url + }); + //window.open(new_url + data, '', 'location=no, resizeable=no, height=410, width=625, top=89px, left=99px,toolbar=no,menubar=no,scrollbars=auto,status=no'); } else if (dataArray.length == '1' && data == 'error'){ layer.alert('没有授权角色') } else { @@ -194,6 +201,7 @@ layer.alert(aUrl, { skin: 'layui-layer-molv', title: '多个角色,请选择一个连接', + shade: false, closeBtn: 0 }) } @@ -205,7 +213,15 @@ function windowOpen(aTab){ var new_url = aTab.href; - window.open(new_url, '', 'height=400, width=600, top=89px, left=99px,toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no'); + layer.open({ + type: 2, + title: 'Jumpserver Web Terminal', + maxmin: true, + area: ['628px', '452px'], + shade: false, + content: new_url + }); + //window.open(new_url, '', 'height=410, width=625, top=89px, left=99px,toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no'); return false } @@ -224,7 +240,6 @@ border: [2, 0.3, '#1AB394'], shade: [0.5, '#000000'], shadeClose: true, - area : ['800px' , '600px'], content: url, cancel: function(){ location.replace(location.href); diff --git a/templates/jperm/perm_rule_add.html b/templates/jperm/perm_rule_add.html index 346d444a1..fb408cfc7 100644 --- a/templates/jperm/perm_rule_add.html +++ b/templates/jperm/perm_rule_add.html @@ -163,38 +163,6 @@ $('#ruleForm').validator({ }); -$(document).ready(function(){ - $("input.role").click(function(){ - if($("input.role[value=GA]").is( ":checked" )){ - $("#admin_groups").css("display", 'none'); - } - else { - - $("#admin_groups").css("display", 'block'); - } - }); - - $('#use_password').click(function(){ - if ($(this).is(':checked')){ - $('#admin_account_password').css('display', 'block') - } - else { - - $('#admin_account_password').css('display', 'none') - } - }); - - $('#use_publicKey').click(function(){ - if ($(this).is(':checked')){ - - $('#admin_account_publicKey').css('display', 'block') - } - else { - $('#admin_account_publicKey').css('display', 'none') - } - }); -}); - var config = { '.chosen-select' : {}, '.chosen-select-deselect' : {allow_single_deselect:true}, From 46245ab4aa79254b398d7c00ae1c7a47dc7e1a13 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 26 Nov 2015 13:21:05 +0800 Subject: [PATCH 2/3] fix record bug --- connect.py | 4 +--- jlog/log_api.py | 8 ++++++-- run_websocket.py | 3 +-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/connect.py b/connect.py index a9c15f750..28617cc31 100644 --- a/connect.py +++ b/connect.py @@ -204,7 +204,6 @@ class Tty(object): log.save() log_file_f.write('Start at %s\n' % datetime.datetime.now()) - log_time_f.write('0.0000 ') return log_file_f, log_time_f, log def get_connect_info(self): @@ -326,7 +325,7 @@ class SshTty(Tty): sys.stdout.write(x) sys.stdout.flush() now_timestamp = time.time() - log_time_f.write('%s\n%s ' % (len(x), round(now_timestamp-pre_timestamp, 4))) + log_time_f.write('%s %s\n' % (round(now_timestamp-pre_timestamp, 4), len(x))) log_file_f.write(x) pre_timestamp = now_timestamp log_file_f.flush() @@ -363,7 +362,6 @@ class SshTty(Tty): finally: termios.tcsetattr(sys.stdin, termios.TCSADRAIN, old_tty) - log_time_f.write('0') log_file_f.write('End time is %s' % datetime.datetime.now()) log_file_f.close() log_time_f.close() diff --git a/jlog/log_api.py b/jlog/log_api.py index 5ef484777..1537b1614 100644 --- a/jlog/log_api.py +++ b/jlog/log_api.py @@ -43,14 +43,18 @@ def scriptToJSON(scriptf, timing=None): scriptf.readline() # ignore first header line from script file offset = 0 for t in timing: - data = escapeString(scriptf.read(t[1])) + dt = scriptf.read(t[1]) + print "## %s: %s" % (t, dt) + data = escapeString(dt) offset += t[0] ret.append((data, offset)) + print ret return dumps(ret) def renderTemplate(script_path, time_file_path, dimensions=(24, 80), templatename=DEFAULT_TEMPLATE): - with copen(script_path, encoding='utf-8', errors='replace') as scriptf: + #with copen(script_path, encoding='utf-8', errors='replace') as scriptf: + with open(script_path) as scriptf: with open(time_file_path) as timef: timing = getTiming(timef) json = scriptToJSON(scriptf, timing) diff --git a/run_websocket.py b/run_websocket.py index 77c3f8096..9250dd3a8 100644 --- a/run_websocket.py +++ b/run_websocket.py @@ -312,7 +312,6 @@ class WebTerminalHandler(tornado.websocket.WebSocketHandler): self.log.is_finished = True self.log.end_time = datetime.datetime.now() self.log.save() - self.log_time_f.write('0') self.log_time_f.close() self.close() except AttributeError: @@ -336,7 +335,7 @@ class WebTerminalHandler(tornado.websocket.WebSocketHandler): try: self.write_message(json.dumps({'data': data})) now_timestamp = time.time() - self.log_time_f.write('%s\n%s ' % (len(data), round(now_timestamp-pre_timestamp, 4))) + self.log_time_f.write('%s %s\n' % (round(now_timestamp-pre_timestamp, 4), len(data))) self.log_file_f.write(data) pre_timestamp = now_timestamp self.log_file_f.flush() From 5045d66c1c1c4b3de65b92468302a704dd8cdd96 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 26 Nov 2015 17:10:09 +0800 Subject: [PATCH 3/3] fix --- jlog/log_api.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/jlog/log_api.py b/jlog/log_api.py index 1537b1614..6afbfdb0f 100644 --- a/jlog/log_api.py +++ b/jlog/log_api.py @@ -44,11 +44,9 @@ def scriptToJSON(scriptf, timing=None): offset = 0 for t in timing: dt = scriptf.read(t[1]) - print "## %s: %s" % (t, dt) data = escapeString(dt) offset += t[0] ret.append((data, offset)) - print ret return dumps(ret)