This commit is contained in:
Ivan Vazhenin
2023-03-26 20:22:27 +03:00
parent b5edf1bab2
commit ac960cd670
3 changed files with 23 additions and 16 deletions

View File

@@ -38,7 +38,7 @@ class ParcelDownloader(Worker):
parcel_dir = os.path.join(self.static_dir, parcel.id)
if not os.path.exists(parcel_dir) and files:
os.mkdir(parcel_dir, 750)
os.mkdir(parcel_dir)
try:
for f in files:
@@ -59,25 +59,30 @@ class ParcelDownloader(Worker):
self.log.info('Downloading file url %s', url)
match = self.re_url.match(url)
if match is None:
raise urllib.error.URLError('Url does not match the http pattern!')
url_groups = match.groupdict()
local = match is None
if not local:
url_groups = match.groupdict()
if 'login' in url_groups:
url = url_groups['protocol'] + url_groups['path']
passman = urllib.request.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, url, url_groups.get('login'), url_groups.get('password') or '')
opener = urllib.request.build_opener(urllib.request.HTTPBasicAuthHandler(passman))
urllib.request.install_opener(opener)
if 'login' in url_groups:
url = url_groups['protocol'] + url_groups['path']
passman = urllib.request.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, url, url_groups.get('login'), url_groups.get('password') or '')
opener = urllib.request.build_opener(urllib.request.HTTPBasicAuthHandler(passman))
urllib.request.install_opener(opener)
fspath = os.path.join(parcel_dir, name)
with open(fspath, 'wb') as f:
u = urllib.request.urlopen(url)
if local:
u = open(url, 'rb')
else:
u = urllib.request.urlopen(url)
while True:
b = u.read(self.bufsize)
f.write(b)
if len(b) < self.bufsize:
break
if local:
u.close()
return fspath
def transfer_parcel(self, parcel):

View File

@@ -185,7 +185,7 @@ class TCPServerWorker(threading.Thread):
return self.workers
def process_disconnected(self):
self.workers = filter(lambda worker: worker.is_alive(), self.workers)
self.workers = [x for x in self.workers if x.is_alive()]
class AuthError(Exception):
@@ -498,7 +498,7 @@ class TCPWorker(threading.Thread):
data = self.bufdata.popleft()
log.debug('%s - Received data: %s', self.name, data)
return json.loads(data)
data = ''
data = b''
self.data_pos = 0
self.data_size = 0
while True:
@@ -518,7 +518,7 @@ class TCPWorker(threading.Thread):
if not data:
break
data = self.bufdata.popleft()
if 'ping' not in data and 'pong' not in data:
if b'ping' not in data and b'pong' not in data:
log.debug('%s - Received data: %s', self.name, data)
return json.loads(data)
@@ -589,7 +589,7 @@ class TCPWorker(threading.Thread):
data = json.dumps(data)
if 'ping' not in data and 'pong' not in data:
log.debug('%s - Sending data: %s', self.name, data)
self.socket.sendall(struct.pack('q', len(data)) + data)
self.socket.sendall(struct.pack('q', len(data)) + data.encode('utf-8'))
def send_pong(self):
self.send_data({'pong': True})

4
start.sh Normal file → Executable file
View File

@@ -1 +1,3 @@
python enserver.py --debug --port=7001 --pidfile=/tmp/enserver.pid --logfile=/var/log/enserver.log --id=prilvbox --address=enserv --storage=/share/store/enserver --db-host=10.10.8.83 --db-port=32101 --host=10.10.78.40 --db-user=postgres --db-passwd=Root12345678 --auth-provider=http://10.10.8.81:9000/ --replication-provider=http://10.10.8.81:9000/ http://10.10.8.81:9000/ http://10.10.8.81:9000/
source venv/bin/activate
python3 enserver/enserver.py --id bnd127 --db-host 10.10.8.83 --db-port 32101 --auth-provider http://10.10.8.27:9000/ --debug http://10.10.8.27:9000/
# --debug --port=7001 --pidfile=/tmp/enserver.pid --logfile=/var/log/enserver.log --id=prilvbox --address=enserv --storage=/share/store/enserver --db-host=10.10.8.83 --db-port=32101 --host=10.10.78.40 --db-user=postgres --db-passwd=Root12345678 --auth-provider=http://10.10.8.81:9000/ --replication-provider=http://10.10.8.81:9000/ http://10.10.8.81:9000/ http://10.10.8.81:9000/