Fix onboard WebKit preview and archive board telemetry locally
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
#!/bin/sh
|
||||
# Run by the owner-facing release installer after hash verification. Scope is
|
||||
# this product's packages and its dedicated cluster; never remove another DB.
|
||||
set -eu
|
||||
test "$(id -u)" = 0
|
||||
mc_release_dir=$1
|
||||
cd "$mc_release_dir"
|
||||
sha256sum --check SHA256SUMS
|
||||
mc_pg_guard=/etc/postgresql-common/createcluster.d/60-mission-core-install.conf
|
||||
mc_created_guard=0
|
||||
cleanup() {
|
||||
if [ "$mc_created_guard" = 1 ]; then
|
||||
if [ "$(cat "$mc_pg_guard")" = 'create_main_cluster = false' ]; then
|
||||
rm "$mc_pg_guard"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
trap cleanup EXIT
|
||||
trap 'exit 130' INT
|
||||
trap 'exit 143' HUP TERM
|
||||
if ! dpkg-query -W -f='${Status}' postgresql-16 2>/dev/null | grep -qx 'install ok installed'; then
|
||||
# postgresql-common explicitly supports this drop-in. Suppress only automatic
|
||||
# creation of the unrelated default main cluster during the first install.
|
||||
test ! -e "$mc_pg_guard"
|
||||
install -d -m 0755 /etc/postgresql-common/createcluster.d
|
||||
printf '%s\n' 'create_main_cluster = false' > "$mc_pg_guard"
|
||||
chmod 0644 "$mc_pg_guard"
|
||||
mc_created_guard=1
|
||||
fi
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-remove \
|
||||
"$mc_release_dir/timescaledb-2-loader-postgresql-16_2.29.2~ubuntu24.04-1615_amd64.deb" \
|
||||
"$mc_release_dir/timescaledb-2-oss-postgresql-16_2.29.2~ubuntu24.04-1615_amd64.deb" \
|
||||
"$mc_release_dir/mission-core-node_0.8.15_amd64.deb" \
|
||||
"$mc_release_dir/mission-core-xgrids-k1_0.1.14_amd64.deb"
|
||||
systemctl is-active --quiet mission-core-node.service
|
||||
systemctl is-active --quiet mission-core-k1.service
|
||||
systemctl is-active --quiet postgresql@16-ndc-monitor.service
|
||||
systemctl is-active --quiet mission-core-node-monitor.service
|
||||
runuser -u mission-core-monitor -- /usr/bin/python3 - <<'PY'
|
||||
import http.client,json,socket,time
|
||||
deadline=time.monotonic()+20
|
||||
while True:
|
||||
c=http.client.HTTPConnection('monitor',timeout=3)
|
||||
c.sock=socket.socket(socket.AF_UNIX);c.sock.settimeout(3)
|
||||
try:
|
||||
c.sock.connect('/run/mission-core-monitor/monitor.sock')
|
||||
c.request('GET','/status');r=c.getresponse();v=json.load(r)
|
||||
if r.status==200 and v['storage']=='ready' and v['latest']['seq']>0:break
|
||||
except (OSError, ValueError, KeyError, TypeError, http.client.HTTPException):
|
||||
pass
|
||||
finally:c.close()
|
||||
if time.monotonic()>deadline:raise SystemExit('Local telemetry did not become ready')
|
||||
time.sleep(1)
|
||||
print('Local telemetry: ready')
|
||||
PY
|
||||
printf '%s\n' 'Mission Core Node R18: package and local archive checks passed.'
|
||||
Reference in New Issue
Block a user