From 69347e2329add9b054af5a5fae6558602d73aa0c Mon Sep 17 00:00:00 2001
From: joshemb <josh@elixxir.io>
Date: Tue, 14 Feb 2023 10:28:21 -0800
Subject: [PATCH] Fix bugs in generation package

---
 gen/client-registrar.yaml | 36 ++++++++++++++++++++++++++++++++++++
 gen/run.sh                |  5 ++---
 generatePackage.py        | 22 +++++++++++++++++-----
 3 files changed, 55 insertions(+), 8 deletions(-)
 create mode 100644 gen/client-registrar.yaml

diff --git a/gen/client-registrar.yaml b/gen/client-registrar.yaml
new file mode 100644
index 0000000..423ee46
--- /dev/null
+++ b/gen/client-registrar.yaml
@@ -0,0 +1,36 @@
+# ==================================
+# Client Registrar Configuration
+# ==================================
+
+# Log message level (0 = info, 1 = debug, >1 = trace)
+logLevel: 0
+# Path to log file
+logPath: "results/client-registrar.log"
+
+# Public address, used in NDF it gives to client
+publicAddress: "0.0.0.0:{registration_port}"
+# The listening port of this server
+port: {registration_port}
+
+# === REQUIRED FOR ENABLING TLS ===
+# Path to the registration server private key file
+keyPath: "../keys/cmix.rip.key"
+# Path to the registration server certificate file
+certPath: "../keys/cmix.rip.crt"
+
+# Maximum number of connections per period
+userRegCapacity: 1000
+# How often the number of connections is reset
+userRegLeakPeriod: "24h"
+
+# Database connection information
+dbUsername: "cmix"
+dbPassword: ""
+dbName: "cmix_server"
+dbAddress: ""
+
+# List of client codes to be added to the database (for testing)
+clientRegCodes:
+  - "AAAA"
+  - "BBBB"
+  - "CCCC"
diff --git a/gen/run.sh b/gen/run.sh
index 582cc88..39fb067 100755
--- a/gen/run.sh
+++ b/gen/run.sh
@@ -153,7 +153,6 @@ fi
 
 set +x
 diff -aru $GOLDOUTPUT $CLIENTCLEAN
-cat $CLIENTOUT/client42.log | grep -a "Could not confirm authentication channel" > results/deleteContact.txt || true
 
 if [ "$NETWORKENTRYPOINT" == "localhost:{entry_point}" ]
 then
@@ -171,9 +170,9 @@ then
     diff -aruN results/gateway-errors.txt noerrors.txt
     echo "Checking backup files for equality..."
     # diff -aruN $CLIENTOUT/client120A.backup.json $CLIENTOUT/client120B.backup.json > client120BackupDiff.txt
-    diff -aruN $CLIENTOUT/client121A.backup.json $CLIENTOUT/client121B.backup.json > client121BackupDiff.txt || true
+    #diff -aruN $CLIENTOUT/client121A.backup.json $CLIENTOUT/client121B.backup.json > client121BackupDiff.txt || true
     # diff -aruN  client120BackupDiff.txt noerrors.txt
-    echo "NOTE: BACKUP CHECK DISABLED, this should be uncommented when turned back on!"
+    #echo "NOTE: BACKUP CHECK DISABLED, this should be uncommented when turned back on!"
     #diff -aruN  client121BackupDiff.txt noerrors.txt
 fi
 
diff --git a/generatePackage.py b/generatePackage.py
index 39b3591..cee168e 100755
--- a/generatePackage.py
+++ b/generatePackage.py
@@ -66,6 +66,11 @@ def generate_server_side_config(offset: int, newPackage: string):
     with open("gen/permissioning.yaml") as f:
         reg_template = f.read()
 
+    # Open client-registrar
+    client_reg_template = ""
+    with open("gen/client-registrar.yaml") as f:
+        client_reg_template = f.read()
+
     # Open server template
     server_template = ""
     with open("gen/server.yaml") as f:
@@ -160,14 +165,21 @@ def generate_server_side_config(offset: int, newPackage: string):
         network_config = network_config.replace("{entry_point}", str(gateway_ports[0]))
         f.write(network_config)
 
+    # Generate permissioning config
     with open("{}/permissioning.yaml".format(newPackage), "w") as f:
         reg_template = reg_template.replace("{permissioning_port}", str(perm_port))  \
             .replace("{udb_port}", str(udbPort))\
             .replace("{registration_port}", str(perm_port+1))
         f.write(reg_template)
+   
+   # Generate registration configs
     with open("{}/registration.json".format(newPackage), "w") as f:
         f.write(reg_json)
 
+    with open("{}/client-registrar.yaml".format(newPackage), "w") as f:
+        client_reg_template = client_reg_template.replace("{registration_port}", str(perm_port+1))
+        f.write(client_reg_template)
+    
     with open("{}/noerrors.txt".format(newPackage), "w") as f:
         f.write(no_errors)
 
@@ -198,18 +210,18 @@ def generate_server_side_config(offset: int, newPackage: string):
 
 # Count the number of packages previously created by counting
 # run.sh files creates
-def count_run_sh_files():
+def count_networks():
     current_dir = os.getcwd()
     count = 0
     for root, dirs, files in os.walk(current_dir):
         for file in files:
-            if file == "run.sh":
+            if file == "permissioning.yaml":
                 count += 1
     return count
 
 
 def main(argv: Sequence[str] | None = None) -> int:
-    run_sh_count = count_run_sh_files()
+    network_count = count_networks()
 
     parser = argparse.ArgumentParser(description='Generate or count packages')
     subparsers = parser.add_subparsers(title='subcommands', dest='command')
@@ -226,7 +238,7 @@ def main(argv: Sequence[str] | None = None) -> int:
     args = parser.parse_args()
 
     if args.command == "count":
-        print(f"Number of occurrences of run.sh in all subdirectories: {run_sh_count}")
+        print(f"Number of occurrences of run.sh in all subdirectories: {network_count}")
         return
     elif args.command == "generate":
         # todo: It may be that the serveral programmers are separating tests
@@ -239,7 +251,7 @@ def main(argv: Sequence[str] | None = None) -> int:
         # Request new package name from user
         #newPackage = string(input("Name of new package: "))
         #os.makedirs(os.path.dirname(newPackage), exist_ok=True)
-        generate_server_side_config(run_sh_count + args.offset, args.package)
+        generate_server_side_config(network_count + args.offset, args.package)
     else:
         raise NotImplementedError(
             f"Command {args.command} does not exist.",
-- 
GitLab