From 8ff7a4616dcedac333b5e93d994cbff2887ffbe9 Mon Sep 17 00:00:00 2001
From: Matthias Stecher <matthiasstecher@gmx.de>
Date: Tue, 25 Aug 2020 19:30:32 +0200
Subject: [PATCH] __netbox: allow multiple hostnames

---
 type/__netbox/files/configuration.py.sh   | 2 +-
 type/__netbox/man.rst                     | 2 ++
 type/__netbox/manifest                    | 8 ++++++--
 type/__netbox/parameter/required          | 1 -
 type/__netbox/parameter/required_multiple | 1 +
 5 files changed, 10 insertions(+), 4 deletions(-)
 create mode 100644 type/__netbox/parameter/required_multiple

diff --git a/type/__netbox/files/configuration.py.sh b/type/__netbox/files/configuration.py.sh
index 21104b4..4b7be11 100755
--- a/type/__netbox/files/configuration.py.sh
+++ b/type/__netbox/files/configuration.py.sh
@@ -11,7 +11,7 @@ cat << EOF
 # access to the server via any other hostnames. The first FQDN in the list will be treated as the preferred name.
 #
 # Example: ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local']
-ALLOWED_HOSTS = [ '$ALLOWED_HOST' ]
+ALLOWED_HOSTS = [$ALLOWED_HOSTS ]
 
 # PostgreSQL database configuration. See the Django documentation for a complete list of available parameters:
 #   https://docs.djangoproject.com/en/stable/ref/settings/#databases
diff --git a/type/__netbox/man.rst b/type/__netbox/man.rst
index 761494a..2af2bef 100644
--- a/type/__netbox/man.rst
+++ b/type/__netbox/man.rst
@@ -34,6 +34,7 @@ database-password
 
 host
     Hostname (domain or IP address) on which the application is served.
+    Multiple hostnames are possible; given as multiple arguments.
 
 OPTIONAL PARAMETERS
 -------------------
@@ -190,6 +191,7 @@ EXAMPLES
                 --database-password "secretsecretsecret" \
                 --secret-key "secretsecretsecret" \
                 --host "${__target_host:?}" \
+                --host "cool-netbox.xyz" \
                 --ldap-server "ldaps://ldap.domain.tld" \
                 --ldap-bind-dn "uid=netbox,ou=services,dc=domain,dc=tld" \
                 --ldap-bind-password "secretsecretsecret" \
diff --git a/type/__netbox/manifest b/type/__netbox/manifest
index 62da0a2..2f5cf4e 100755
--- a/type/__netbox/manifest
+++ b/type/__netbox/manifest
@@ -35,8 +35,12 @@ export DATABASE_HOST
 DATABASE_PORT="$(cat "$__object/parameter/database-port")"
 export DATABASE_PORT
 
-ALLOWED_HOST=$(cat "$__object/parameter/host")
-export ALLOWED_HOST
+# list of hosts
+ALLOWED_HOSTS=""
+while read -r hostname; do
+    ALLOWED_HOSTS="$ALLOWED_HOSTS '$hostname',"
+done < "$__object/parameter/host"
+export ALLOWED_HOSTS
 
 if [ -f "$__object/parameter/secret-key" ]; then
     SECRET_KEY=$(cat "$__object/parameter/secret-key")
diff --git a/type/__netbox/parameter/required b/type/__netbox/parameter/required
index 3d03e5a..02fca9f 100644
--- a/type/__netbox/parameter/required
+++ b/type/__netbox/parameter/required
@@ -2,4 +2,3 @@ version
 database
 database-user
 database-password
-host
diff --git a/type/__netbox/parameter/required_multiple b/type/__netbox/parameter/required_multiple
new file mode 100644
index 0000000..c70dc2d
--- /dev/null
+++ b/type/__netbox/parameter/required_multiple
@@ -0,0 +1 @@
+host