Browse Source

done edit firewall #36

Roberto Berto 5 years ago
parent
commit
f3f653c10b

+ 3 - 3
vycenter/firewall/templates/firewall/create.html

@@ -1,7 +1,7 @@
 {% extends "base.html" %}
 
-{% block header_title %}Firewall Dashboard{% endblock %}
-{% block section_title %}Firewall Dashboard{% endblock %}
+{% block header_title %}Create Firewall{% endblock %}
+{% block section_title %}Create Firewall{% endblock %}
 
 {% block debug %}
 {{ firewall_all }}
@@ -9,7 +9,7 @@
 
 {% block content %}
 
-<h2>Create new firewall</h2>
+<h2>Create new Firewall</h2>
 
 <form action="{% url 'firewall:firewall-create' %}" method="post">
     {% csrf_token %}

+ 41 - 0
vycenter/firewall/templates/firewall/edit.html

@@ -0,0 +1,41 @@
+{% extends "base.html" %}
+
+{% block header_title %}Edit Firewall{% endblock %}
+{% block section_title %}Edit Firewall{% endblock %}
+
+{% block debug %}
+{{ firewall_all }}
+{{ firewall }}
+{% endblock %}
+
+{% block content %}
+
+<h2>Firewall {{ firewall_name }}</h2>
+
+<form action="{% url 'firewall:firewall-edit' firewall_name %}" method="post">
+    {% csrf_token %}
+    
+    <p>
+        <label for="alias">description</label><br>
+        <input type="text" name="description" id="description" value="{{ firewall.description }}" size="60">
+    </p>    
+    
+    <p>
+        <label for="hostname">default action</label><br>
+        <input type="radio" name="action" id="action" value="accept" {% if firewall.defaultaction == "accept" %}checked="checked"{% endif %}> accept
+        <input type="radio" name="action" id="action" value="drop" {% if firewall.defaultaction == "accept" %}checked="checked"{% endif %}> drop
+        <input type="radio" name="action" id="action" value="reject" {% if firewall.defaultaction == "accept" %}checked="checked"{% endif %}> reject        
+    </p>
+
+    
+    
+    <input type="submit" value="Edit Firewall">
+    </form>
+
+    
+
+
+{% endblock %}
+
+
+

+ 1 - 1
vycenter/firewall/templates/firewall/list.html

@@ -27,7 +27,7 @@
                 <td><a href="{% url 'firewall:show' ifkey %}">{{ ifkey }}</a></td>
                 <td>{{ ifvalue.description }}</td>
                 <td>{{ ifvalue.default_action }}</td>
-                <td><a href="{% url 'firewall:firewall-remove' ifkey %}">remove</a></td>
+                <td><a href="{% url 'firewall:firewall-remove' ifkey %}">remove</a> | <a href="{% url 'firewall:firewall-edit' ifkey %}">edit</a></td>
             </tr>
         {% endfor %}
         

+ 1 - 0
vycenter/firewall/urls.py

@@ -11,6 +11,7 @@ urlpatterns = [
     path('show/<str:firewall_name>', views.show, name='show'),
     path('firewall-create', views.create, name='firewall-create'),
     path('firewall-remove/<str:firewall_name>', views.firewall_remove, name='firewall-remove'),
+    path('firewall-edit/<str:firewall_name>', views.firewall_edit, name='firewall-edit'),
     path('addrule/<str:firewall_name>', views.addrule, name='addrule'),
     path('editrule/<str:firewall_name>/<str:firewall_rulenumber>', views.editrule, name='editrule'),
     path('firewall-removerule/<str:firewall_name>/<str:firewall_rulenumber>', views.firewall_removerule, name='firewall-removerule'),    

+ 38 - 1
vycenter/firewall/views.py

@@ -236,4 +236,41 @@ def firewall_remove(request, firewall_name):
 
     firewall = vyos.delete_firewall(hostname_default, firewall_name)
     
-    return redirect('firewall:firewall-list')
+    return redirect('firewall:firewall-list')
+
+def firewall_edit(request, firewall_name):
+    if not request.user.is_authenticated:
+        return redirect('%s?next=%s' % (reverse('registration-login'), request.path))
+        
+    #interfaces = vyos.get_interfaces()
+    all_instances = vyos.instance_getall()
+    hostname_default = vyos.get_hostname_prefered(request)
+    firewall = vyos.get_firewall(hostname_default, firewall_name)
+    firewall['defaultaction'] = firewall['default-action']
+
+    changed = False
+    if 'description' in request.POST:
+        cmd = {"op": "set", "path": ["firewall", "name", firewall_name, "description", request.POST['description']]}
+        result2 = vyos.set_config(hostname_default, cmd)
+        print(result2)
+        changed = True
+
+    if 'action' in request.POST:
+        cmd = {"op": "set", "path": ["firewall", "name", firewall_name, "default-action", request.POST['action']]}
+        result3 = vyos.set_config(hostname_default, cmd)
+        print(result3)
+        changed = True
+
+    if changed == True:
+        return redirect('firewall:firewall-list')
+
+    template = loader.get_template('firewall/edit.html')
+    context = { 
+        #'interfaces': interfaces,
+        'instances': all_instances,
+        'hostname_default': hostname_default,
+        'firewall_name': firewall_name,
+        'firewall': firewall
+
+    }   
+    return HttpResponse(template.render(context, request))