snapshoter: add recovery (generate past plots)
parent
c641eda6f6
commit
90f302e39e
|
|
@ -0,0 +1,19 @@
|
|||
from datetime import date, timedelta, datetime as dt
|
||||
import snapshot
|
||||
|
||||
def update(start, end):
|
||||
auth = snapshot.auth_from_env()
|
||||
config = snapshot.ssh_from_env()
|
||||
offset = timedelta(days=1)
|
||||
while start <= end:
|
||||
print(start)
|
||||
day = snapshot.today(today=start)
|
||||
print(day)
|
||||
snapshot._update(auth, config, day=day)
|
||||
start += offset
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
start = dt(2018, 8 , 1)
|
||||
end = dt(2018, 8 , 1)
|
||||
update(start, end)
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
from collections import namedtuple
|
||||
from datetime import date, timedelta, datetime as dt
|
||||
import logging
|
||||
import os
|
||||
import shutil
|
||||
import tempfile
|
||||
|
|
@ -7,24 +8,24 @@ import tempfile
|
|||
import fs
|
||||
import requests
|
||||
|
||||
Day = namedtuple("Day", ["start", "end"])
|
||||
log = logging
|
||||
|
||||
Day = namedtuple("Day", ["start", "end", "str"])
|
||||
SSHConfig = namedtuple("SSHConfig", ["user", "password", "host", "port", "dir"])
|
||||
|
||||
URL = 'http://192.168.2.30:3000/render/d-solo/j4171pFmk/in-vs-outdoor?orgId=1&panelId=2&from={start}&to={to}&width=1000&height=500&tz=Europe%2FBerlin'
|
||||
|
||||
def today_str():
|
||||
return date.today().strftime("temp_%d.%m.%Y.png")
|
||||
|
||||
def today():
|
||||
today = dt.today()
|
||||
def today(today=dt.today()):
|
||||
t = today.timetuple()
|
||||
delta = timedelta(hours=t.tm_hour, minutes=t.tm_min, seconds=t.tm_sec)
|
||||
start = today - delta
|
||||
end = start + timedelta(days=1)
|
||||
print(start, end)
|
||||
log.debug(f"{start}, {end}")
|
||||
name = start.strftime("temp_%d.%m.%Y.png")
|
||||
start = int(start.timestamp() * 1000)
|
||||
end = int(end.timestamp() * 1000)
|
||||
return Day(start=start, end=end)
|
||||
return Day(start=start, end=end, str=name)
|
||||
|
||||
def download(url, target, **kwargs):
|
||||
response = requests.get(url, stream=True, **kwargs)
|
||||
|
|
@ -37,12 +38,13 @@ def upload(local_file, filename, config):
|
|||
with fs.open_fs(url) as remote:
|
||||
return fs.copy.copy_file("/", local_file, remote, filename)
|
||||
|
||||
def _update(auth, ssh_config):
|
||||
day = today()
|
||||
def _update(auth, ssh_config, day=today()):
|
||||
url = URL.format(start=day.start, to=day.end)
|
||||
log.debug(url)
|
||||
with tempfile.NamedTemporaryFile() as tmp:
|
||||
download(url, tmp.name, auth=auth)
|
||||
upload(tmp.name, today_str(), ssh_config)
|
||||
result = upload(tmp.name, day.str, ssh_config)
|
||||
log.debug(f"{day.str}, {result}")
|
||||
|
||||
def auth_from_env():
|
||||
return (os.getenv("USER"), os.getenv("PASSWORD"))
|
||||
|
|
|
|||
Loading…
Reference in New Issue