Configure dhcp relay in Maas fabrics

PROD-31910

Change-Id: I80d5a15fc38be0793c680da8c6bfd24b2e9f407e
diff --git a/_modules/maasng.py b/_modules/maasng.py
index c2676c1..4002e05 100644
--- a/_modules/maasng.py
+++ b/_modules/maasng.py
@@ -1416,7 +1416,7 @@
 
 
 def create_vlan_in_fabric(name, fabric, vlan, description, primary_rack, mtu=1500,
-                          dhcp_on=False, update=False, vlan_id=""):
+                          dhcp_on=False, update=False, vlan_id="", relay_vlan=None):
     """
     Update vlan
     CLI Example:
@@ -1433,6 +1433,8 @@
     }
     if mtu:
         data['mtu'] = str(mtu)
+    if relay_vlan:
+        data['relay_vlan'] = str(relay_vlan)
     vlan = str(vlan)
     maas = _create_maas_client()
     fabric_id = get_fabricid(fabric)
diff --git a/_states/maasng.py b/_states/maasng.py
index 96fe529..5c68652 100644
--- a/_states/maasng.py
+++ b/_states/maasng.py
@@ -372,7 +372,7 @@
     return ret
 
 
-def vlan_present_in_fabric(name, fabric, vlan, primary_rack, description='', dhcp_on=False, mtu=1500):
+def vlan_present_in_fabric(name, fabric, vlan, primary_rack, description='', dhcp_on=False, mtu=1500, relay_vlan=None):
     """
 
     :param name: Name of vlan
@@ -405,7 +405,8 @@
                                                            mtu=mtu,
                                                            description=description,
                                                            primary_rack=primary_rack,
-                                                           dhcp_on=dhcp_on)
+                                                           dhcp_on=dhcp_on,
+                                                           relay_vlan=relay_vlan)
         ret['comment'] = 'Vlan {0} has ' \
                          'been created for {1}'.format(name, fabric)
     elif _rez == 'update':
@@ -418,7 +419,8 @@
                                                            primary_rack=primary_rack,
                                                            dhcp_on=dhcp_on,
                                                            update=True,
-                                                           vlan_id=_id)
+                                                           vlan_id=_id,
+                                                           relay_vlan=relay_vlan)
         ret['comment'] = 'Vlan {0} has been ' \
                          'updated for {1}'.format(name, fabric)
     ret['changes'] = changes
diff --git a/maas/region.sls b/maas/region.sls
index 06d1970..404b42a 100644
--- a/maas/region.sls
+++ b/maas/region.sls
@@ -310,7 +310,8 @@
   - fabric: {{ fabric_name }}
   - name: {{ data.get('name','') }}
   - description: {{ data.description }}
-  - primary_rack: {{ data.get('primary_rack', '')  }}
+  - primary_rack: {{ data.get('primary_rack', '') }}
+  - relay_vlan: {{ data.get('relay_vlan', '') }}
     {%- endfor %}
   {%- endfor %}
 {%- endif %}
@@ -358,8 +359,9 @@
   - fabric: {{ fabric_name }}
   - name: {{ data.get('name','') }}
   - description: {{ data.description }}
-  - primary_rack: {{ data.get('primary_rack', '')  }}
+  - primary_rack: {{ data.get('primary_rack', '') }}
   - dhcp_on: {{ data.get('dhcp','False') }}
+  - relay_vlan: {{ data.get('relay_vlan', '') }}
     {%- endfor %}
   {%- endfor %}
 {%- endif %}