Commit 784af494 authored by ibuler's avatar ibuler

[Update] 支持py2

parent a2515aac
......@@ -4,9 +4,13 @@
import os
import re
import socket
import selectors
import telnetlib
try:
import selectors
except ImportError:
import selectors2 as selectors
import paramiko
from paramiko.ssh_exception import SSHException
......@@ -82,7 +86,7 @@ class SSHConnection:
password_short, key_fingerprint,
))
return None, None, str(e)
except (socket.error, TimeoutError) as e:
except (socket.error, socket.timeout) as e:
return None, None, str(e)
return ssh, sock, None
......
# -*- coding: utf-8 -*-
#
# -*- coding: utf-8 -*-
#
import base64
import os
import hashlib
......
# -*- coding: utf-8 -*-
#
import stat
import threading
......
......@@ -28,7 +28,7 @@ class ProxyNamespace(BaseNamespace):
...
}
"""
super().__init__(*args, **kwargs)
super(BaseNamespace, self).__init__(*args, **kwargs)
self.win_size = None
def new_connection(self):
......
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
from __future__ import unicode_literals
import socket
import threading
......@@ -362,7 +363,7 @@ class InteractiveServer:
if not result and (result_list is self.assets_list) and self.finish and self.total_assets == 0:
# 无授权资产
return None, None
return
elif not result and (result_list is self.assets_list) and self.finish:
# 上一页是最后一页
......@@ -383,7 +384,7 @@ class InteractiveServer:
action = yield (page, result)
if action == BACK:
return None, None
return
elif action == PAGE_UP:
if page <= 1:
# 已经是第一页了
......
......@@ -8,14 +8,14 @@ from .service import app_service
from .struct import SizedList, SelectEvent
from .utils import wrap_with_line_feed as wr, wrap_with_warning as warning, \
ugettext as _
from . import char
from . import utils
from . import char, utils
from .compat import str
BUF_SIZE = 4096
logger = utils.get_logger(__file__)
class Connection:
class Connection(object):
connections = {}
clients_num = 0
......@@ -88,7 +88,7 @@ class Connection:
return cls.connections.get(cid)
class Request:
class Request(object):
def __init__(self):
self.type = None
self.x11 = None
......@@ -96,7 +96,7 @@ class Request:
self.meta = {'env': {}}
class Client:
class Client(object):
"""
Client is the request client. Nothing more to say
......@@ -143,12 +143,12 @@ class Client:
return "<%s from %s:%s>" % (self.user, self.addr[0], self.addr[1])
class ServerFilter:
class ServerFilter(object):
def run(self, data):
pass
class BaseServer:
class BaseServer(object):
"""
Base Server
Achieve command record
......@@ -383,7 +383,7 @@ class Server(BaseServer):
self.sock.transport.close()
class WSProxy:
class WSProxy(object):
def __init__(self, ws, client_id):
self.ws = ws
self.client_id = client_id
......
......@@ -21,12 +21,12 @@ logger = get_logger(__file__)
BUF_SIZE = 1024
class ReplayRecorder(metaclass=abc.ABCMeta):
class ReplayRecorder(object):
time_start = None
storage = None
def __init__(self):
super().__init__()
super(ReplayRecorder, self).__init__()
self.file = None
self.file_path = None
self.get_storage()
......@@ -110,14 +110,23 @@ class ReplayRecorder(metaclass=abc.ABCMeta):
return self.finish_replay(times - 1, session_id)
class CommandRecorder(metaclass=Singleton):
class CommandRecorder(object):
batch_size = 10
timeout = 5
no = 0
storage = None
_cache = []
def __new__(cls, *args, **kwargs):
if cls._cache:
return cls._cache[0]
else:
self = super(CommandRecorder, cls).__new__(cls, *args, **kwargs)
cls._cache.append(self)
return self
def __init__(self):
super().__init__()
super(CommandRecorder, self).__init__()
self.queue = MemoryQueue()
self.stop_evt = threading.Event()
self.push_to_server_async()
......
......@@ -3,9 +3,13 @@
#
import uuid
import datetime
import selectors
import time
try:
import selectors
except ImportError:
import selectors2 as selectors
from .utils import get_logger, wrap_with_warning as warn, \
wrap_with_line_feed as wr, ugettext as _, ignore_error
from .service import app_service
......
......@@ -144,7 +144,7 @@ class SFTPServer(paramiko.SFTPServerInterface):
if len(data) == 1 and not data[0]:
return request
host, *path = data
host, path = data[0], data[1:]
request["host"] = host
unique, su = self.host_has_unique_su(host)
if unique:
......
......@@ -112,7 +112,7 @@ class SSHServer:
logger.info("Request type `{}:{}`, dispatch to interactive mode".format(kind, chan_type))
try:
InteractiveServer(client).interact()
except Exception as e:
except IndexError as e:
logger.error("Unexpected error occur: {}".format(e))
connection = Connection.get_connection(client.connection_id)
connection.remove_client(client.id)
......
......@@ -21,7 +21,7 @@ class MultiQueueMixin:
self.put(i)
class MemoryQueue(MultiQueueMixin, queue.Queue):
class MemoryQueue(MultiQueueMixin, queue.Queue, object):
pass
......@@ -29,11 +29,11 @@ class SizedList(list):
def __init__(self, maxsize=0):
self.maxsize = maxsize
self.size = 0
super().__init__()
super(list, self).__init__()
def append(self, b):
if self.maxsize == 0 or self.size < self.maxsize:
super().append(b)
super(SizedList, self).append(b)
self.size += len(b)
def clean(self):
......
......@@ -12,7 +12,6 @@ from io import StringIO
from binascii import hexlify
from werkzeug.local import Local, LocalProxy
from functools import partial, wraps
import builtins
import paramiko
import pyte
......@@ -431,11 +430,17 @@ def get_current_lang(attr):
def _gettext(lang):
import builtins
if lang == 'en':
trans_en.install()
else:
trans_zh.install()
return builtins.__dict__['_']
try:
return builtins.__dict__['_']
except KeyError:
def _f(x):
return x
return _f
def _find(attr):
......
......@@ -2,10 +2,10 @@
# -*- coding: utf-8 -*-
#
import eventlet
from eventlet.debug import hub_prevent_multiple_readers
eventlet.monkey_patch()
hub_prevent_multiple_readers(False)
#import eventlet
#from eventlet.debug import hub_prevent_multiple_readers
#eventlet.monkey_patch()
#hub_prevent_multiple_readers(False)
import os
import sys
......@@ -15,7 +15,8 @@ import signal
dirs = ('logs', 'keys')
for d in dirs:
os.makedirs(d, exist_ok=True)
if not os.path.isdir(d):
os.makedirs(d)
from coco import Coco
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment