From 911e950174b137c92064a9390c1169994971dfac Mon Sep 17 00:00:00 2001
From: Frederick Borges <fborges@opennebula.io>
Date: Tue, 11 Jan 2022 19:20:18 +0100
Subject: [PATCH] F #5568: Add new IP conf method attributes (#1696)

---
 .../wizard-tabs/network/nic-tab/html.hbs      | 26 +++++++++++++++++++
 .../vnets-tab/form-panels/create/wizard.hbs   | 26 +++++++++++++++++++
 .../form-panels/instantiate/templateRow.hbs   | 26 +++++++++++++++++++
 3 files changed, 78 insertions(+)

diff --git a/src/sunstone/public/app/tabs/templates-tab/form-panels/create/wizard-tabs/network/nic-tab/html.hbs b/src/sunstone/public/app/tabs/templates-tab/form-panels/create/wizard-tabs/network/nic-tab/html.hbs
index e861116ebe..0ea708fb6b 100644
--- a/src/sunstone/public/app/tabs/templates-tab/form-panels/create/wizard-tabs/network/nic-tab/html.hbs
+++ b/src/sunstone/public/app/tabs/templates-tab/form-panels/create/wizard-tabs/network/nic-tab/html.hbs
@@ -241,6 +241,17 @@
         </label>
         <input type="text" wizard_field="SEARCH_DOMAIN" id="SEARCH_DOMAIN" name="SEARCH_DOMAIN"/>
       </div>
+      <div class="medium-6 columns">
+        <label for="eth_{{nicTabId}}_method">
+          {{tr "Method"}}
+        </label>
+        <select wizard_field="METHOD" name="eth_{{nicTabId}}_method" id="eth_{{nicTabId}}_method">
+          <option value="">none (Use default)</option> {{!-- This option is the same than static --}}
+          <option value="static">static (Based on context)</option>
+          <option value="dhcp">dhcp (DHCPv4)</option>
+          <option value="skip">skip (Do not configure IPv4)</option>
+        </select>
+      </div>
     </div>
   </fieldset>
   <fieldset class="no_auto">
@@ -259,6 +270,21 @@
         <input type="text" wizard_field="GATEWAY6" id="GATEWAY6" name="GATEWAY6"/>
       </div>
     </div>
+    <div class="row">
+      <div class="medium-6 columns">
+        <label for="eth__{{nicTabId}}_ipv6_method">
+          {{tr "IPv6 Method"}}
+        </label>
+        <select wizard_field="IP6_METHOD" name="eth_{{nicTabId}}_ipv6_method" id="eth_{{nicTabId}}_ipv6_method">
+          <option value="">none (Use default)</option> {{!-- This option is the same than static --}}
+          <option value="static">static (Based on context)</option>
+          <option value="auto">auto (SLAAC)</option>
+          <option value="dhcp">dhcp (SLAAC and DHCPv6)</option>
+          <option value="disable">disable (Do not use IPv6)</option>
+          <option value="skip">skip (Do not configure IPv6)</option>
+        </select>
+      </div>
+    </div>
   </fieldset>
   <fieldset class="not_firecracker">
     <legend>{{tr "Override Network Inbound Traffic QoS"}}</legend>
diff --git a/src/sunstone/public/app/tabs/vnets-tab/form-panels/create/wizard.hbs b/src/sunstone/public/app/tabs/vnets-tab/form-panels/create/wizard.hbs
index 8851074100..d523995c5f 100644
--- a/src/sunstone/public/app/tabs/vnets-tab/form-panels/create/wizard.hbs
+++ b/src/sunstone/public/app/tabs/vnets-tab/form-panels/create/wizard.hbs
@@ -408,6 +408,32 @@
           <input type="text" wizard_field="GUEST_MTU" name="net_mtu" id="net_mtu" />
         </div>
       </div>
+      <div class="row">
+        <div class="medium-6 columns">
+          <label for="method">
+            {{tr "Method"}}
+          </label>
+          <select wizard_field="METHOD" name="method" id="method">
+            <option value="">none (Use default)</option> {{!-- This option is the same than static --}}
+            <option value="static">static (Based on context)</option>
+            <option value="dhcp">dhcp (DHCPv4)</option>
+            <option value="skip">skip (Do not configure IPv4)</option>
+          </select>
+        </div>
+        <div class="medium-6 columns">
+          <label for="ipv6_method">
+            {{tr "IPv6 Method"}}
+          </label>
+          <select wizard_field="IP6_METHOD" name="ipv6_method" id="ipv6_method">
+            <option value="">none (Use default)</option> {{!-- This option is the same than static --}}
+            <option value="static">static (Based on context)</option>
+            <option value="auto">auto (SLAAC)</option>
+            <option value="dhcp">dhcp (SLAAC and DHCPv6)</option>
+            <option value="disable">disable (Do not use IPv6)</option>
+            <option value="skip">skip (Do not configure IPv6)</option>
+          </select>
+        </div>
+      </div>
       <fieldset>
         <legend>{{tr "Custom attributes"}}</legend>
         {{{customTagsHTML}}}
diff --git a/src/sunstone/public/app/tabs/vnets-templates-tab/form-panels/instantiate/templateRow.hbs b/src/sunstone/public/app/tabs/vnets-templates-tab/form-panels/instantiate/templateRow.hbs
index 502b7b1bc3..a45e30b36b 100644
--- a/src/sunstone/public/app/tabs/vnets-templates-tab/form-panels/instantiate/templateRow.hbs
+++ b/src/sunstone/public/app/tabs/vnets-templates-tab/form-panels/instantiate/templateRow.hbs
@@ -82,6 +82,32 @@
           <input type="text" wizard_field="GUEST_MTU" name="net_mtu" id="net_mtu" />
         </div>
       </div>
+      <div class="row">
+        <div class="medium-6 columns">
+          <label for="method">
+            {{tr "Method"}}
+          </label>
+          <select wizard_field="METHOD" name="method" id="method">
+            <option value="">none (Use default)</option> {{!-- This option is the same than static --}}
+            <option value="static">static (Based on context)</option>
+            <option value="dhcp">dhcp (DHCPv4)</option>
+            <option value="skip">skip (Do not configure IPv4)</option>
+          </select>
+        </div>
+        <div class="medium-6 columns">
+          <label for="ipv6_method">
+            {{tr "IPv6 Method"}}
+          </label>
+          <select wizard_field="IP6_METHOD" name="ipv6_method" id="ipv6_method">
+            <option value="">none (Use default)</option> {{!-- This option is the same than static --}}
+            <option value="static">static (Based on context)</option>
+            <option value="auto">auto (SLAAC)</option>
+            <option value="dhcp">dhcp (SLAAC and DHCPv6)</option>
+            <option value="disable">disable (Do not use IPv6)</option>
+            <option value="skip">skip (Do not configure IPv6)</option>
+          </select>
+        </div>
+      </div>
       <fieldset>
         <legend>{{tr "Custom attributes"}}</legend>
         {{{customTagsHTML}}}