fix(ucepsa): pin Shop Floor sync context mapping
This commit is contained in:
parent
73544c0a85
commit
7f9a88d81a
90
ucepsa/edge-oee-demo/ops/manage_odoo_shopfloor_sync_v033.sh
Normal file → Executable file
90
ucepsa/edge-oee-demo/ops/manage_odoo_shopfloor_sync_v033.sh
Normal file → Executable file
@ -2,12 +2,31 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
ACTION="${1:-status}"
|
ACTION="${1:-status}"
|
||||||
|
|
||||||
ROOT="${SHOPFLOOR_RUNTIME_ROOT:-/srv/mesavault/edge-oee-ucepsa}"
|
ROOT="${SHOPFLOOR_RUNTIME_ROOT:-/srv/mesavault/edge-oee-ucepsa}"
|
||||||
CONTAINER="${SHOPFLOOR_SYNC_CONTAINER:-mv_ucepsa_odoo_shopfloor_session_sync}"
|
|
||||||
|
CONTAINER="${
|
||||||
|
SHOPFLOOR_SYNC_CONTAINER:-
|
||||||
|
mv_ucepsa_odoo_shopfloor_session_sync
|
||||||
|
}"
|
||||||
|
|
||||||
NETWORK="${SHOPFLOOR_DOCKER_NETWORK:-mv_ucepsa_net}"
|
NETWORK="${SHOPFLOOR_DOCKER_NETWORK:-mv_ucepsa_net}"
|
||||||
|
|
||||||
INTERVAL="${SHOPFLOOR_SYNC_INTERVAL_S:-15}"
|
INTERVAL="${SHOPFLOOR_SYNC_INTERVAL_S:-15}"
|
||||||
LOOKBACK="${SHOPFLOOR_SYNC_LOOKBACK_HOURS:-168}"
|
LOOKBACK="${SHOPFLOOR_SYNC_LOOKBACK_HOURS:-168}"
|
||||||
OUTPUT="${SHOPFLOOR_SYNC_OUTPUT:-/tmp/ucepsa_odoo_shopfloor_session_sync.jsonl}"
|
|
||||||
|
TENANT="${SHOPFLOOR_TENANT:-ucepsa}"
|
||||||
|
SITE="${SHOPFLOOR_SITE:-ucepsa_onpremise}"
|
||||||
|
|
||||||
|
MACHINE_MAP_JSON="${
|
||||||
|
SHOPFLOOR_MACHINE_MAP_JSON:-
|
||||||
|
{"52":"CORT-00","53":"CORT-01","54":"CORT-02"}
|
||||||
|
}"
|
||||||
|
|
||||||
|
OUTPUT="${
|
||||||
|
SHOPFLOOR_SYNC_OUTPUT:-
|
||||||
|
/tmp/ucepsa_odoo_shopfloor_session_sync.jsonl
|
||||||
|
}"
|
||||||
|
|
||||||
cd "$ROOT"
|
cd "$ROOT"
|
||||||
|
|
||||||
@ -17,30 +36,40 @@ image() {
|
|||||||
--format '{{.Config.Image}}'
|
--format '{{.Config.Image}}'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
docker_common_args=(
|
||||||
|
--network "$NETWORK"
|
||||||
|
--env-file .env
|
||||||
|
-e ODOO_DB_OVERRIDE=ucepsa_prod
|
||||||
|
-e TENANT_OVERRIDE="$TENANT"
|
||||||
|
-e SITE_OVERRIDE="$SITE"
|
||||||
|
-e SHOPFLOOR_MACHINE_MAP_JSON="$MACHINE_MAP_JSON"
|
||||||
|
-v "$ROOT:/app:ro"
|
||||||
|
-w /app
|
||||||
|
--entrypoint python
|
||||||
|
)
|
||||||
|
|
||||||
start_sync() {
|
start_sync() {
|
||||||
local sync_image
|
local sync_image
|
||||||
sync_image="$(image)"
|
sync_image="$(image)"
|
||||||
|
|
||||||
docker rm -f "$CONTAINER" >/dev/null 2>&1 || true
|
docker rm -f "$CONTAINER" \
|
||||||
|
>/dev/null 2>&1 || true
|
||||||
|
|
||||||
docker run -d \
|
docker run -d \
|
||||||
--name "$CONTAINER" \
|
--name "$CONTAINER" \
|
||||||
--restart unless-stopped \
|
--restart unless-stopped \
|
||||||
--network "$NETWORK" \
|
"${docker_common_args[@]}" \
|
||||||
--env-file .env \
|
|
||||||
-e ODOO_DB_OVERRIDE=ucepsa_prod \
|
|
||||||
-v "$ROOT:/app:ro" \
|
|
||||||
-v /tmp:/probe-output \
|
-v /tmp:/probe-output \
|
||||||
-w /app \
|
|
||||||
--entrypoint python \
|
|
||||||
"$sync_image" \
|
"$sync_image" \
|
||||||
tools/odoo_shopfloor_session_sync.py \
|
tools/odoo_shopfloor_session_sync.py \
|
||||||
--watch \
|
--watch \
|
||||||
--interval "$INTERVAL" \
|
--interval "$INTERVAL" \
|
||||||
--lookback-hours "$LOOKBACK" \
|
--lookback-hours "$LOOKBACK" \
|
||||||
--output "/probe-output/$(basename "$OUTPUT")"
|
--output \
|
||||||
|
"/probe-output/$(basename "$OUTPUT")"
|
||||||
|
|
||||||
docker ps --format 'table {{.Names}}\t{{.Status}}' \
|
docker ps \
|
||||||
|
--format 'table {{.Names}}\t{{.Status}}' \
|
||||||
| grep -E "$CONTAINER|NAMES"
|
| grep -E "$CONTAINER|NAMES"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,12 +78,7 @@ one_shot() {
|
|||||||
sync_image="$(image)"
|
sync_image="$(image)"
|
||||||
|
|
||||||
docker run --rm -i \
|
docker run --rm -i \
|
||||||
--network "$NETWORK" \
|
"${docker_common_args[@]}" \
|
||||||
--env-file .env \
|
|
||||||
-e ODOO_DB_OVERRIDE=ucepsa_prod \
|
|
||||||
-v "$ROOT:/app:ro" \
|
|
||||||
-w /app \
|
|
||||||
--entrypoint python \
|
|
||||||
"$sync_image" \
|
"$sync_image" \
|
||||||
tools/odoo_shopfloor_session_sync.py \
|
tools/odoo_shopfloor_session_sync.py \
|
||||||
--once \
|
--once \
|
||||||
@ -66,12 +90,7 @@ dry_run_known() {
|
|||||||
sync_image="$(image)"
|
sync_image="$(image)"
|
||||||
|
|
||||||
docker run --rm -i \
|
docker run --rm -i \
|
||||||
--network "$NETWORK" \
|
"${docker_common_args[@]}" \
|
||||||
--env-file .env \
|
|
||||||
-e ODOO_DB_OVERRIDE=ucepsa_prod \
|
|
||||||
-v "$ROOT:/app:ro" \
|
|
||||||
-w /app \
|
|
||||||
--entrypoint python \
|
|
||||||
"$sync_image" \
|
"$sync_image" \
|
||||||
tools/odoo_shopfloor_session_sync.py \
|
tools/odoo_shopfloor_session_sync.py \
|
||||||
--once \
|
--once \
|
||||||
@ -85,12 +104,7 @@ backfill_known() {
|
|||||||
sync_image="$(image)"
|
sync_image="$(image)"
|
||||||
|
|
||||||
docker run --rm -i \
|
docker run --rm -i \
|
||||||
--network "$NETWORK" \
|
"${docker_common_args[@]}" \
|
||||||
--env-file .env \
|
|
||||||
-e ODOO_DB_OVERRIDE=ucepsa_prod \
|
|
||||||
-v "$ROOT:/app:ro" \
|
|
||||||
-w /app \
|
|
||||||
--entrypoint python \
|
|
||||||
"$sync_image" \
|
"$sync_image" \
|
||||||
tools/odoo_shopfloor_session_sync.py \
|
tools/odoo_shopfloor_session_sync.py \
|
||||||
--once \
|
--once \
|
||||||
@ -102,31 +116,43 @@ case "$ACTION" in
|
|||||||
start)
|
start)
|
||||||
start_sync
|
start_sync
|
||||||
;;
|
;;
|
||||||
|
|
||||||
stop)
|
stop)
|
||||||
docker stop "$CONTAINER"
|
docker stop "$CONTAINER"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
restart)
|
restart)
|
||||||
docker rm -f "$CONTAINER" >/dev/null 2>&1 || true
|
docker rm -f "$CONTAINER" \
|
||||||
|
>/dev/null 2>&1 || true
|
||||||
start_sync
|
start_sync
|
||||||
;;
|
;;
|
||||||
|
|
||||||
status)
|
status)
|
||||||
docker ps -a --format 'table {{.Names}}\t{{.Status}}' \
|
docker ps -a \
|
||||||
|
--format 'table {{.Names}}\t{{.Status}}' \
|
||||||
| grep -E "$CONTAINER|NAMES"
|
| grep -E "$CONTAINER|NAMES"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
logs)
|
logs)
|
||||||
docker logs --tail 200 -f "$CONTAINER"
|
docker logs --tail 200 -f "$CONTAINER"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
once)
|
once)
|
||||||
one_shot
|
one_shot
|
||||||
;;
|
;;
|
||||||
|
|
||||||
dry-run-known)
|
dry-run-known)
|
||||||
dry_run_known
|
dry_run_known
|
||||||
;;
|
;;
|
||||||
|
|
||||||
backfill-known)
|
backfill-known)
|
||||||
backfill_known
|
backfill_known
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
echo "Uso: $0 {start|stop|restart|status|logs|once|dry-run-known|backfill-known}" >&2
|
echo \
|
||||||
|
"Uso: $0 {start|stop|restart|status|logs|once|dry-run-known|backfill-known}" \
|
||||||
|
>&2
|
||||||
exit 2
|
exit 2
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
@ -44,11 +44,11 @@ def connect_pg():
|
|||||||
|
|
||||||
def tenant_site() -> tuple[str, str]:
|
def tenant_site() -> tuple[str, str]:
|
||||||
return (
|
return (
|
||||||
env_first("TENANT", "TENANT_OVERRIDE", default="ucepsa")
|
env_first("TENANT_OVERRIDE", "TENANT", default="ucepsa")
|
||||||
or "ucepsa",
|
or "ucepsa",
|
||||||
env_first(
|
env_first(
|
||||||
"SITE",
|
|
||||||
"SITE_OVERRIDE",
|
"SITE_OVERRIDE",
|
||||||
|
"SITE",
|
||||||
default="ucepsa_onpremise",
|
default="ucepsa_onpremise",
|
||||||
)
|
)
|
||||||
or "ucepsa_onpremise",
|
or "ucepsa_onpremise",
|
||||||
|
|||||||
@ -162,11 +162,11 @@ def load_config() -> Config:
|
|||||||
)
|
)
|
||||||
|
|
||||||
return Config(
|
return Config(
|
||||||
tenant=env_first("TENANT", "TENANT_OVERRIDE", default="ucepsa")
|
tenant=env_first("TENANT_OVERRIDE", "TENANT", default="ucepsa")
|
||||||
or "ucepsa",
|
or "ucepsa",
|
||||||
site=env_first(
|
site=env_first(
|
||||||
"SITE",
|
|
||||||
"SITE_OVERRIDE",
|
"SITE_OVERRIDE",
|
||||||
|
"SITE",
|
||||||
default="ucepsa_onpremise",
|
default="ucepsa_onpremise",
|
||||||
)
|
)
|
||||||
or "ucepsa_onpremise",
|
or "ucepsa_onpremise",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user