Skip to content

Commit f89c613

Browse files
committed
add diff debug logging of common db commands
1 parent be2de1e commit f89c613

9 files changed

Lines changed: 31 additions & 15 deletions

OpenFlow/src/Config.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ export class Config {
1919
Config.getversion();
2020
Config.logpath = Config.getEnv("logpath", __dirname);
2121
Config.log_queries = Config.parseBoolean(Config.getEnv("log_queries", "false"));
22+
Config.log_aggregates = Config.parseBoolean(Config.getEnv("log_aggregates", "false"));
23+
Config.log_inserts = Config.parseBoolean(Config.getEnv("log_inserts", "false"));
24+
Config.log_updates = Config.parseBoolean(Config.getEnv("log_updates", "false"));
25+
Config.log_deletes = Config.parseBoolean(Config.getEnv("log_deletes", "false"));
26+
2227
Config.getting_started_url = Config.getEnv("getting_started_url", "");
2328

2429
Config.NODE_ENV = Config.getEnv("NODE_ENV", "development");
@@ -97,6 +102,11 @@ export class Config {
97102
public static version: string = Config.getversion();
98103
public static logpath: string = Config.getEnv("logpath", __dirname);
99104
public static log_queries: boolean = Config.parseBoolean(Config.getEnv("log_queries", "false"));
105+
public static log_aggregates: boolean = Config.parseBoolean(Config.getEnv("log_aggregates", "false"));
106+
public static log_inserts: boolean = Config.parseBoolean(Config.getEnv("log_inserts", "false"));
107+
public static log_updates: boolean = Config.parseBoolean(Config.getEnv("log_updates", "false"));
108+
public static log_deletes: boolean = Config.parseBoolean(Config.getEnv("log_deletes", "false"));
109+
100110
public static getting_started_url: string = Config.getEnv("getting_started_url", "");
101111

102112
public static NODE_ENV: string = Config.getEnv("NODE_ENV", "development");

OpenFlow/src/DatabaseConnection.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,8 @@ export class DatabaseConnection {
492492
options.hint = myhint;
493493
const items: T[] = await this.db.collection(collectionname).aggregate(aggregates, options).toArray();
494494
DatabaseConnection.traversejsondecode(items);
495+
const user: TokenUser = Crypt.verityToken(jwt);
496+
if (Config.log_aggregates) this._logger.debug("[" + user.username + "][" + collectionname + "] aggregate gave " + items.length + " results ");
495497
return items;
496498
}
497499
/**
@@ -721,6 +723,7 @@ export class DatabaseConnection {
721723
await this.db.collection(collectionname).replaceOne({ _id: item._id }, item);
722724
}
723725
DatabaseConnection.traversejsondecode(item);
726+
if (Config.log_inserts) this._logger.debug("[" + user.username + "][" + collectionname + "] inserted " + item.name);
724727
return item;
725728
}
726729
/**
@@ -957,6 +960,7 @@ export class DatabaseConnection {
957960
} catch (error) {
958961
throw error;
959962
}
963+
if (Config.log_updates) this._logger.debug("[" + user.username + "][" + q.collectionname + "] updated " + q.item.name);
960964
return q;
961965
}
962966
/**
@@ -1041,6 +1045,7 @@ export class DatabaseConnection {
10411045
// } else {
10421046
// throw Error("UpdateOne failed!!!");
10431047
// }
1048+
if (Config.log_updates && q.opresult) this._logger.debug("[" + user.username + "][" + q.collectionname + "] updated " + q.opresult.modifiedCount + " items");
10441049
return q;
10451050
} catch (error) {
10461051
throw error;
@@ -1088,15 +1093,15 @@ export class DatabaseConnection {
10881093
if (!this.hasAuthorization(user, q.item, Rights.update)) { throw new Error("Access denied, no authorization to InsertOrUpdateOne"); }
10891094
// if (q.item._id !== null && q.item._id !== undefined && q.item._id !== "") {
10901095
if (exists.length == 1) {
1091-
this._logger.silly("[" + user.username + "][" + q.collectionname + "] InsertOrUpdateOne, Updating found one in database");
1096+
if (Config.log_updates) this._logger.debug("[" + user.username + "][" + q.collectionname + "] InsertOrUpdateOne, Updating found one in database");
10921097
const uq = new UpdateOneMessage();
10931098
// uq.query = query;
10941099
uq.item = q.item; uq.collectionname = q.collectionname; uq.w = q.w; uq.j; uq.jwt = q.jwt;
10951100
const uqres = await this.UpdateOne(uq);
10961101
q.opresult = uqres.opresult;
10971102
q.result = uqres.result;
10981103
} else {
1099-
this._logger.silly("[" + user.username + "][" + q.collectionname + "] InsertOrUpdateOne, Inserting as new in database");
1104+
if (Config.log_updates) this._logger.debug("[" + user.username + "][" + q.collectionname + "] InsertOrUpdateOne, Inserting as new in database");
11001105
q.result = await this.InsertOne(q.item, q.collectionname, q.w, q.j, q.jwt);
11011106
}
11021107
return q;
@@ -1144,7 +1149,7 @@ export class DatabaseConnection {
11441149
throw Error("item not found!");
11451150
}
11461151
}
1147-
this._logger.silly("[" + user.username + "][" + collectionname + "] Deleting " + id + " in database");
1152+
if (Config.log_deletes) this._logger.verbose("[" + user.username + "][" + collectionname + "] Deleting " + id + " in database");
11481153
const res: DeleteWriteOpResultObject = await this.db.collection(collectionname).deleteOne(_query);
11491154
}
11501155

@@ -1200,10 +1205,11 @@ export class DatabaseConnection {
12001205
for (let i = 0; i < arr.length; i++) {
12011206
await this._DeleteFile(arr[i]._id);
12021207
}
1208+
if (Config.log_deletes) this._logger.verbose("[" + user.username + "][" + collectionname + "] deleted " + arr.length + " items in database");
12031209
return arr.length;
12041210
} else {
12051211
const res: DeleteWriteOpResultObject = await this.db.collection(collectionname).deleteMany(_query);
1206-
this._logger.debug("[" + user.username + "][" + collectionname + "] Deleted " + res.deletedCount + " items in database");
1212+
if (Config.log_deletes) this._logger.verbose("[" + user.username + "][" + collectionname + "] deleted " + res.deletedCount + " items in database");
12071213
return res.deletedCount;
12081214
}
12091215
}

OpenFlowNodeRED/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "openflow-nodered",
3-
"version": "1.1.93",
3+
"version": "1.1.94",
44
"description": "Simple wrapper around NodeRed, RabbitMQ and MongoDB to support a more scaleable NodeRed implementation.\r Also the \"backend\" for [OpenRPA](https://github.com/skadefro/OpenRPA)",
55
"main": "index.js",
66
"scripts": {

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.1.93
1+
1.1.94

docker-compose-toolbox.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ services:
4545
- "traefik.http.routers.web.rule=Host(`toolbox.openrpa.dk`)"
4646
- "traefik.http.routers.web.entrypoints=web"
4747
- "traefik.frontend.passHostHeader=true"
48-
image: "cloudhack/openflow:1.1.93"
48+
image: "cloudhack/openflow:1.1.94"
4949
container_name: "web"
5050
environment:
5151
- update_acl_based_on_groups=true
@@ -82,7 +82,7 @@ services:
8282
- "traefik.http.routers.nodered.rule=Host(`nodered1.toolbox.openrpa.dk`)"
8383
- "traefik.http.routers.nodered.entrypoints=web"
8484
- "traefik.http.services.nodered.loadbalancer.server.port=1880"
85-
image: "cloudhack/openflownodered:1.1.93"
85+
image: "cloudhack/openflownodered:1.1.94"
8686
container_name: "nodered"
8787
environment:
8888
# - nodered_id=1

docker-compose-traefik-letsencrypt.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ services:
6969
- "traefik.http.routers.web.entrypoints=web,websecure"
7070
- "traefik.frontend.passHostHeader=true"
7171
- "traefik.http.routers.web.tls.certresolver=myresolver"
72-
image: "cloudhack/openflow:1.1.93"
72+
image: "cloudhack/openflow:1.1.94"
7373
container_name: "web"
7474
environment:
7575
- update_acl_based_on_groups=true
@@ -107,7 +107,7 @@ services:
107107
- "traefik.http.routers.nodered.entrypoints=web,websecure"
108108
- "traefik.http.services.nodered.loadbalancer.server.port=1880"
109109
- "traefik.http.routers.nodered.tls.certresolver=myresolver"
110-
image: "cloudhack/openflownodered:1.1.93"
110+
image: "cloudhack/openflownodered:1.1.94"
111111
container_name: "nodered"
112112
environment:
113113
# - nodered_id=1

docker-compose-traefik.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ services:
4545
- "traefik.http.routers.web.rule=Host(`localhost.openrpa.dk`)"
4646
- "traefik.http.routers.web.entrypoints=web"
4747
- "traefik.frontend.passHostHeader=true"
48-
image: "cloudhack/openflow:1.1.93"
48+
image: "cloudhack/openflow:1.1.94"
4949
container_name: "web"
5050
environment:
5151
- update_acl_based_on_groups=true
@@ -82,7 +82,7 @@ services:
8282
- "traefik.http.routers.nodered.rule=Host(`nodered1.localhost.openrpa.dk`)"
8383
- "traefik.http.routers.nodered.entrypoints=web"
8484
- "traefik.http.services.nodered.loadbalancer.server.port=1880"
85-
image: "cloudhack/openflownodered:1.1.93"
85+
image: "cloudhack/openflownodered:1.1.94"
8686
container_name: "nodered"
8787
environment:
8888
# - nodered_id=1

docker-compose.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ services:
1818
- "5672:5672"
1919
- "15672:15672"
2020
web:
21-
image: "cloudhack/openflow:1.1.93"
21+
image: "cloudhack/openflow:1.1.94"
2222
environment:
2323
- update_acl_based_on_groups=true
2424
- multi_tenant=false
@@ -52,7 +52,7 @@ services:
5252
- "80:80"
5353
- "5858:5858"
5454
nodered:
55-
image: "cloudhack/openflownodered:1.1.93"
55+
image: "cloudhack/openflownodered:1.1.94"
5656
environment:
5757
# - nodered_id=1
5858
- nodered_sa=nodered1

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "openiap",
3-
"version": "1.1.93",
3+
"version": "1.1.94",
44
"description": "Simple wrapper around NodeRed, RabbitMQ and MongoDB to support a more scaleable NodeRed implementation.\r Also the \"backend\" for [OpenRPA](https://github.com/skadefro/OpenRPA)",
55
"main": "index.js",
66
"scripts": {

0 commit comments

Comments
 (0)