From 4dcc43061d05f14ceddbb9f3a0c43ab908b89a4b Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sun, 3 Jan 2021 23:58:21 +0100 Subject: VPN work. Also better sorting of output objects. --- src/main/resources/io/trygvis/rules/acme/vpn.drl | 30 +++++++++++++----------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'src/main/resources/io/trygvis/rules/acme/vpn.drl') diff --git a/src/main/resources/io/trygvis/rules/acme/vpn.drl b/src/main/resources/io/trygvis/rules/acme/vpn.drl index 3f62fbd..cfdbef9 100644 --- a/src/main/resources/io/trygvis/rules/acme/vpn.drl +++ b/src/main/resources/io/trygvis/rules/acme/vpn.drl @@ -2,6 +2,7 @@ package io.trygvis.rules.acme; import io.trygvis.rules.machine.Machine; import io.trygvis.rules.dns.DnsEntry; +import io.trygvis.rules.acme.AcmeServer; dialect "mvel" @@ -12,34 +13,35 @@ end declare WgHost name : String - machine : Machine +// machine : Machine net : String publicName : String netToNetIp : String networkIp : String end -rule "Set name from machine's name" - salience 10 -when - $h : WgHost(name == null, machine != null) -then - $h.name = $h.machine.name; - - update($h) -end - rule "WgHost VPN machines" when - $machine : Machine(name.startsWith("acme-")) - $wgNet : WgNet(name == "vs0") + $machine : Machine() + $wgNet : WgNet(name == "vpn0") + not(WgHost(name == $machine.name)) then var wgHost = new WgHost(); - wgHost.machine = $machine; + wgHost.name = $machine.name; wgHost.net = $wgNet.name; + wgHost.publicName = $machine.fqdn; insert(wgHost) end +rule "Set public name of WgHost" +when + $host : WgHost(publicName == null) + $m : Machine(name == $host.name, fqdn != null) +then + $host.publicName = $m.fqdn; + update($host) +end + rule "Make DNS entries for all VPN hosts" when $h : WgHost() -- cgit v1.2.3