diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2020-12-30 20:48:51 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2020-12-30 20:48:51 +0100 |
commit | 866eafabd7398fd1485e7aa285345a7dcea480d0 (patch) | |
tree | d0caab0874640678af7fd1e55685da59eb99de0e /durable_rules-test/py/acme/rai/terraform.py | |
parent | ea985dfdb3974f3f22381be01c41dcb06a817831 (diff) | |
download | rules-sandbox-866eafabd7398fd1485e7aa285345a7dcea480d0.tar.gz rules-sandbox-866eafabd7398fd1485e7aa285345a7dcea480d0.tar.bz2 rules-sandbox-866eafabd7398fd1485e7aa285345a7dcea480d0.tar.xz rules-sandbox-866eafabd7398fd1485e7aa285345a7dcea480d0.zip |
Moving everything under durable_rules-test.
Diffstat (limited to 'durable_rules-test/py/acme/rai/terraform.py')
-rw-r--r-- | durable_rules-test/py/acme/rai/terraform.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/durable_rules-test/py/acme/rai/terraform.py b/durable_rules-test/py/acme/rai/terraform.py new file mode 100644 index 0000000..6feedd1 --- /dev/null +++ b/durable_rules-test/py/acme/rai/terraform.py @@ -0,0 +1,41 @@ +from durable.lang import * + +class Terraform: + @staticmethod + def recordSetForMachine(machineKey: str, terraformId: str, fqdn: str): + return {"type": "terraform-record-set", + "key": machineKey, + "terraformId": terraformId, + "fqdn": fqdn, + "rrType": "A", + "rrData": f"scaleway_instance_ip.{machineKey}.address", + } + + @staticmethod + def machine(key: str): + return {"type": "terraform-machine", + "key": key, + } + + @staticmethod + def declare_rules(): + @when_all( + c.dns << (m.type == "dns-entry"), + c.machine << ((m.type == "terraform-machine") & (m.key == c.dns.key)), + ) + def onDnsEntry(c): + terraformId = c.dns.fqdn.replace(".", "_") + c.assert_fact(Terraform.recordSetForMachine(c.machine.key, terraformId, c.dns.fqdn)) + + @when_all((m.type == "terraform-record-set")) + def defaultTerraformRecordSet(c): + pass + + @when_all((m.type == "machine")) + def onDnsEntry(c): + print(f"matched machine: {c.m}") + c.assert_fact(Terraform.machine(c.m.key)) + + @when_all((m.type == "terraform-machine")) + def defaultTerraformMachine(c): + print(f"matched terraform-machine: {c.m}") |