Improve/fix RFC3442 entries and add tests

- Generate the rfc3442 words using a filter plugin, instead of Jinja
- basic sanity test when running plugin standalone
- Improve testing by creating/binding to a bridge0 interface in
  molecule docker container, then verifying that it's running
- Add ntp option
- multiplatform support

Change-Id: I7c2c3081e8919174dd29b3ab2fdd27b4f6eb843a
diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml
index b95c131..13c2065 100644
--- a/molecule/default/converge.yml
+++ b/molecule/default/converge.yml
@@ -6,6 +6,33 @@
 
 - name: Converge
   hosts: all
+  vars:
+    dhcpd_interfaces:
+      - bridge0
+    dhcpd_subnets:
+      - subnet: "192.168.0.1/24"
+        range: "192.168.0.128/25"
+        dns_servers:
+          - "192.168.0.1"
+          - "192.168.0.2"
+        dns_search:
+          - "example.com"
+        tftpd_server: "192.168.0.1"
+        hosts:
+          - name: "dns"
+            ip_addr: "192.168.0.2"
+            mac_addr: "a1:b2:c3:d4:e5:f6"
+          - name: "extra_router"
+            ip_addr: "192.168.0.10"
+            mac_addr: "a6:b5:c4:d3:e2:f1"
+        routers:
+          - ip: "192.168.0.1"
+          - ip: "192.168.0.10"
+            rfc3442routes:
+              - 10.0.0.0/8
+              - 172.16.0.0/16
+              - 192.168.10.0/25
+
   tasks:
     - name: "Include dhcpd"
       include_role:
diff --git a/molecule/default/prepare.yml b/molecule/default/prepare.yml
new file mode 100644
index 0000000..68ec77e
--- /dev/null
+++ b/molecule/default/prepare.yml
@@ -0,0 +1,22 @@
+---
+# dhcpd molecule/default/prepare.yml
+#
+# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+- name: Prepare
+  hosts: all
+
+  tasks:
+    - name: Update apt cache
+      apt:
+        update_cache: true
+
+    - name: Create a bridge to nowhere so dhcpd can start during testing
+      when: "'bridge0' not in ansible_interfaces"
+      command:
+        cmd: "{{ item }}"
+      with_items:
+        - "ip link add bridge0 type bridge"
+        - "ip addr add 192.168.0.5/24 dev bridge0"
+        - "ip link set bridge0 up"
diff --git a/molecule/default/verify.yml b/molecule/default/verify.yml
index 1a4bfdc..aedd158 100644
--- a/molecule/default/verify.yml
+++ b/molecule/default/verify.yml
@@ -6,7 +6,12 @@
 
 - name: Verify
   hosts: all
+
   tasks:
-  - name: example assertion
+
+  - name: Populate service facts
+    service_facts:
+
+  - name: isc-dhcp-server is running
     assert:
-      that: true
+      that: ansible_facts.services["isc-dhcp-server.service"]["state"] == "running"