|
@@ -1,3 +1,4 @@
|
|
|
|
+import os
|
|
from io import BytesIO
|
|
from io import BytesIO
|
|
|
|
|
|
import gnupg
|
|
import gnupg
|
|
@@ -24,11 +25,22 @@ def load_public_key(public_key: str) -> str:
|
|
raise PGPException("Cannot load key") from e
|
|
raise PGPException("Cannot load key") from e
|
|
|
|
|
|
|
|
|
|
|
|
+def hard_exit():
|
|
|
|
+ pid = os.getpid()
|
|
|
|
+ LOG.warning("kill pid %s", pid)
|
|
|
|
+ os.kill(pid, 9)
|
|
|
|
+
|
|
|
|
+
|
|
def encrypt_file(data: BytesIO, fingerprint: str) -> str:
|
|
def encrypt_file(data: BytesIO, fingerprint: str) -> str:
|
|
LOG.d("encrypt for %s", fingerprint)
|
|
LOG.d("encrypt for %s", fingerprint)
|
|
- mem_usage = memory_usage(-1, interval=1, timeout=1)
|
|
|
|
|
|
+ mem_usage = memory_usage(-1, interval=1, timeout=1)[0]
|
|
LOG.d("mem_usage %s", mem_usage)
|
|
LOG.d("mem_usage %s", mem_usage)
|
|
|
|
|
|
|
|
+ # todo
|
|
|
|
+ if mem_usage > 300:
|
|
|
|
+ LOG.error("Force exit")
|
|
|
|
+ hard_exit()
|
|
|
|
+
|
|
r = gpg.encrypt_file(data, fingerprint, always_trust=True)
|
|
r = gpg.encrypt_file(data, fingerprint, always_trust=True)
|
|
if not r.ok:
|
|
if not r.ok:
|
|
LOG.error("Try encrypt again %s", fingerprint)
|
|
LOG.error("Try encrypt again %s", fingerprint)
|