readin/readarchive: gemeinsame Module, Stack-Konventionen
mongo.js, influx_post.js und logit.js lagen in beiden Komponenten doppelt
und waren auseinandergelaufen - so ist der Zeitzonen-Fehler entstanden, den
readin seit jeher richtig loest und readFromcsv.js zwei Jahre lang nicht.
Sie liegen jetzt einmal unter common/.
Wo die Fassungen sich widersprachen:
- MONGOAUTH wird als String verglichen. Die readarchive-Fassung pruefte nur
auf truthy, dadurch schaltete auch MONGOAUTH=false die Auth ein.
- writeDataArray(client, coll, data) nimmt den Collection-Namen direkt;
readarchive baut ihn mit dem neuen dataCollName(styp).
- getallProperties liefert das Array selbst. Die readarchive-Fassung mit
{error, properties} war dort ungenutzt.
- properties_collection heisst einheitlich property_coll.
Das Sammelobjekt statistics lag in readin/readdata.js und wurde von
mongo.js und influx_post.js importiert. Es liegt jetzt in
common/statistics.js, damit die gemeinsamen Module readin nicht kennen
muessen.
Der Build-Kontext beider Images ist dadurch das Repository-Wurzelverzeichnis;
das Layout im Image spiegelt das Repository, damit ../common/... unveraendert
aufgeht. Die Volume-Zeile von readin im Compose zieht deshalb auf
/opt/app/readin/data um.
readarchive folgt jetzt den Konventionen des Stacks: deploy.sh statt
build_and_copy.sh, Dockerfile_readarchive statt Dockerfile_rfcsv, und die
eigene docker-compose.yml entfaellt - der Dienst haengt als Profil "tools"
im Compose des Stacks und wird mit Parametern gestartet:
docker compose run --rm readarchive -t noise -s 2026-07-25 -e 2026-07-29
Getestet: beide Images gebaut, beide gegen Testdatenbanken laufen lassen.
Nicht deployt - die Images in der Registry sind unveraendert.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -37,13 +37,13 @@ const MAXTRIES = 10
|
||||
import 'dotenv/config'
|
||||
import axios from 'axios'
|
||||
import https from 'https'
|
||||
import * as mongo from './mongo.js'
|
||||
import * as influx from './influx_post.js'
|
||||
import * as mongo from '../common/mongo.js'
|
||||
import * as influx from '../common/influx_post.js'
|
||||
import fs from 'fs'
|
||||
import csv from 'csvtojson'
|
||||
import pkg from './package.json' with { type: "json" }
|
||||
import mod_getopt from 'posix-getopt'
|
||||
import { logit, logerror } from './utilities/logit.js'
|
||||
import { logit, logerror } from '../common/logit.js'
|
||||
import { DateTime, Duration } from 'luxon'
|
||||
import { checkProperties} from "./utilities/checkprops.js";
|
||||
import { version } from "os"
|
||||
@@ -376,7 +376,7 @@ async function enterOneSensorinDB(client, sid, erg, dataline, day, styp, args) {
|
||||
}
|
||||
if((args.database === 'both') || (args.database === 'mongo')) {
|
||||
if(erg.length !== 0) {
|
||||
await mongo.writeDataArray(client, erg, styp)
|
||||
await mongo.writeDataArray(client, mongo.dataCollName(styp), erg)
|
||||
}
|
||||
}
|
||||
return erg.length
|
||||
@@ -514,7 +514,7 @@ async function main() {
|
||||
logit(`Inserted: ${inserted}`)
|
||||
// enter changed properties into database
|
||||
if(newProps.length > 0) {
|
||||
await mongo.bulkWrite(client, mongo.properties_collection, newProps)
|
||||
await mongo.bulkWrite(client, mongo.property_coll, newProps)
|
||||
}
|
||||
await mongo.closeMongo(client)
|
||||
if (failedInfluxWrites.length > 0) {
|
||||
|
||||
Reference in New Issue
Block a user