Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.5.2 release #223

Merged
merged 29 commits into from
Aug 13, 2021
Merged
Changes from 3 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
d3f7cef
Summary - Daily Diffs
guydavis Jul 23, 2021
ad56c23
Try to build with arm64.
guydavis Jul 24, 2021
e3dab9e
Move daily summary to Farming page.
guydavis Jul 27, 2021
95ef4c2
Cleanups.
guydavis Jul 27, 2021
7d2d59c
Merge pull request #207 from guydavis/develop
guydavis Jul 27, 2021
0d902ca
Display versions for each worker.
guydavis Jul 28, 2021
34f851d
Merge pull request #208 from guydavis/develop
guydavis Jul 28, 2021
a13e686
Pools page for status.
guydavis Jul 30, 2021
7fe5573
Merge pull request #209 from guydavis/develop
guydavis Jul 30, 2021
731be76
Display recent partial proofs on Summary page.
guydavis Jul 30, 2021
7bbbadc
Merge pull request #210 from guydavis/develop
guydavis Jul 30, 2021
3a02a92
Fix hostname offset.
guydavis Aug 8, 2021
ef83b34
Show the machine time on worker to expose TZ misconfigurations. Work…
guydavis Aug 10, 2021
4a1729f
Merge pull request #214 from guydavis/develop
guydavis Aug 10, 2021
b2119d0
Show displayname for Worker column on Alerts page.
guydavis Aug 10, 2021
22401fe
Handle missing crt files.
guydavis Aug 11, 2021
67b55f6
Merge pull request #215 from guydavis/develop
guydavis Aug 11, 2021
fb38fc7
Require hostname for Worker launch. Links for Pool login and Port ch…
guydavis Aug 11, 2021
18c8ec2
Display plot type on Farming page.
guydavis Aug 11, 2021
51b1d4f
Only controller/farmer can invoke RPC endpoints, so refactoring plot …
guydavis Aug 12, 2021
a46ed8f
Merge pull request #218 from guydavis/develop
guydavis Aug 12, 2021
70f372e
Fixes and optimizations.
guydavis Aug 12, 2021
b2423eb
Merge pull request #220 from guydavis/develop
guydavis Aug 12, 2021
b225ef5
Try preload to avoid repeated Gunicorn worker timeouts.
guydavis Aug 12, 2021
54b4343
Improve preload/reload selection.
guydavis Aug 12, 2021
938c5fc
Update changelog to
guydavis Aug 12, 2021
0e96125
Merge pull request #221 from guydavis/develop
guydavis Aug 12, 2021
16d0a61
Support paths in Worker volume paths.
guydavis Aug 13, 2021
87b92d3
Merge pull request #222 from guydavis/develop
guydavis Aug 13, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion api/schedules/status_challenges.py
Original file line number Diff line number Diff line change
@@ -19,7 +19,7 @@ def update():
return
with app.app_context():
try:
hostname = utils.get_hostname()
hostname = utils.get_displayname()
blockchains = ['chia']
if globals.flax_enabled():
blockchains.append('flax')
4 changes: 2 additions & 2 deletions api/schedules/status_controller.py
Original file line number Diff line number Diff line change
@@ -35,13 +35,13 @@ def update():
app.logger.info("Failed to load and send worker status.")

def ping_workers(workers):
tz = pytz.timezone('Etc/UTC')
for worker in workers:
try:
#app.logger.info("Pinging worker api endpoint: {0}".format(worker.hostname))
utils.send_get(worker, "/ping/", timeout=3, debug=False)
worker.latest_ping_result = "Responding"
worker.ping_success_at = datetime.datetime.now(tz=tz)
worker.updated_at = datetime.datetime.now()
worker.ping_success_at = datetime.datetime.now()
except requests.exceptions.ConnectTimeout as ex:
app.logger.info(str(ex))
worker.latest_ping_result = "Connection Timeout"
1 change: 0 additions & 1 deletion api/schedules/status_worker.py
Original file line number Diff line number Diff line change
@@ -25,7 +25,6 @@ def update():
hostname = utils.get_hostname()
displayname = utils.get_displayname()
config = globals.load()
del config['now']
payload = {
"hostname": hostname,
"displayname": displayname,
2 changes: 2 additions & 0 deletions api/views/workers/resources.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import datetime as dt
import pytz
import os

from flask.views import MethodView

2 changes: 1 addition & 1 deletion common/models/workers.py
Original file line number Diff line number Diff line change
@@ -19,7 +19,7 @@ class Worker(db.Model):
latest_ping_result = sa.Column(sa.String) # Holds status of most recent ping
ping_success_at = sa.Column(sa.DateTime()) # Time of last successful ping
created_at = sa.Column(sa.DateTime(), server_default=func.now())
updated_at = sa.Column(sa.DateTime(), onupdate=func.now())
updated_at = sa.Column(sa.DateTime())

def farming_status(self):
return j.loads(self.services)['chia_farm_status']
3 changes: 1 addition & 2 deletions web/__init__.py
Original file line number Diff line number Diff line change
@@ -46,9 +46,8 @@ def bytesfilter(num, suffix='B'):
app.jinja_env.filters['bytesfilter'] = bytesfilter

def datetimefilter(value, format="%Y-%m-%d %H:%M"):
tz = pytz.timezone(os.environ['TZ'])
utc = pytz.timezone('UTC')
if value:
#app.logger.info("{0} => {1}".format(value, value.strftime(format)))
return value.strftime(format)
else:
return ""
4 changes: 3 additions & 1 deletion web/actions/worker.py
Original file line number Diff line number Diff line change
@@ -46,6 +46,8 @@ def get_worker_by_hostname(hostname):

def prune_workers_status(hostnames):
for hostname in hostnames:
worker = get_worker_by_hostname(hostname)
for table in ALL_TABLES_BY_HOSTNAME:
db.session.execute("DELETE FROM " + table + " WHERE hostname = :hostname", {"hostname":hostname})
db.session.execute("DELETE FROM " + table + " WHERE hostname = :hostname OR hostname = :displayname",
{"hostname":hostname, "displayname":worker.displayname})
db.session.commit()
4 changes: 4 additions & 0 deletions web/models/worker.py
Original file line number Diff line number Diff line change
@@ -48,6 +48,10 @@ def __init__(self, workers):
if 'plotman_version' in config:
other_versions += "Plotman: " + config['plotman_version']
worker.versions['components'] = other_versions
if 'now' in config:
worker.time_on_worker = config['now']
else:
worker.time_on_worker = '?'

def set_ping_response(self, response):
self.ping_response = response
4 changes: 2 additions & 2 deletions web/templates/worker_launch.html
Original file line number Diff line number Diff line change
@@ -250,10 +250,10 @@
cmd += " image: ghcr.io/guydavis/machinaris" + line_end;
cmd += " container_name: machinaris" + line_end;
if (document.getElementById("worker_hostname").value) {
cmd += ' hostname:' + document.getElementById("worker_hostname").value + line_end;
cmd += ' hostname: ' + document.getElementById("worker_hostname").value + line_end;
}
if (document.getElementById("dns_ip_addr").value) {
cmd += ' dns:' + document.getElementById("dns_ip_addr").value + line_end;
cmd += ' dns: ' + document.getElementById("dns_ip_addr").value + line_end;
}
cmd += ' restart: always' + line_end;
cmd += ' tty: true' + line_end;
3 changes: 2 additions & 1 deletion web/templates/workers.html
Original file line number Diff line number Diff line change
@@ -56,7 +56,8 @@
title="Pinged at: {{worker.hostname}}">{{worker.displayname}}</a></td>
{% endif %}
<td>{{worker.mode}}</td>
<td>{{worker.updated_at | datetimefilter}}</td>
<td data-toggle="tooltip" data-bs-placement="left" data-bs-html="true"
title="Time on Worker:<br/> {{worker.time_on_worker}}">{{worker.updated_at | datetimefilter}}</td>
<td>{{worker.latest_ping_result}}</td>
<td>{{worker.ping_success_at | datetimefilter}}</td>
<td><a data-toggle="tooltip" data-bs-placement="left" data-bs-html="true"