Closes #539: Implemented L4 services for devices

This commit is contained in:
Jeremy Stretch
2016-12-15 15:32:58 -05:00
parent 66fa877198
commit f02c222d4f
15 changed files with 268 additions and 12 deletions

View File

@@ -205,6 +205,29 @@
{% endif %}
{% endif %}
</div>
<div class="panel panel-default">
<div class="panel-heading">
<strong>Services</strong>
</div>
{% if services %}
<table class="table table-hover panel-body">
{% for service in services %}
{% include 'dcim/inc/_service.html' %}
{% endfor %}
</table>
{% else %}
<div class="panel-body text-muted">
None
</div>
{% endif %}
{% if perms.dcim.add_service %}
<div class="panel-footer text-right">
<a href="{% url 'dcim:service_assign' device=device.pk %}" class="btn btn-xs btn-primary">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Assign service
</a>
</div>
{% endif %}
</div>
<div class="panel panel-default">
<div class="panel-heading">
<strong>Critical Connections</strong>

View File

@@ -0,0 +1,26 @@
<tr>
<td>{{ service.name }}</td>
<td>
{{ service.get_protocol_display }}/{{ service.port }}
</td>
<td>
{% for ip in service.ipaddresses.all %}
<span>{{ ip.address.ip }}</span><br />
{% empty %}
<span class="text-muted">All IPs</span>
{% endfor %}
</td>
<td>{{ service.description }}</td>
<td class="text-right">
{% if perms.ipam.change_service %}
<a href="{% url 'ipam:service_edit' pk=service.pk %}" class="btn btn-info btn-xs" title="Edit service">
<i class="glyphicon glyphicon-pencil" aria-hidden="true"></i>
</a>
{% endif %}
{% if perms.ipam.delete_service %}
<a href="{% url 'ipam:service_delete' pk=service.pk %}" class="btn btn-danger btn-xs">
<i class="glyphicon glyphicon-trash" aria-hidden="true" title="Delete service"></i>
</a>
{% endif %}
</td>
</tr>

View File

@@ -0,0 +1,26 @@
{% extends 'utilities/obj_edit.html' %}
{% load form_helpers %}
{% block form %}
<div class="panel panel-default">
<div class="panel-heading"><strong>Service</strong></div>
<div class="panel-body">
<div class="form-group">
<label class="col-md-3 control-label">Device</label>
<div class="col-md-9">
<p class="form-control-static">{{ obj.device }}</p>
</div>
</div>
{% render_field form.name %}
<div class="form-group form-inline">
<label class="col-md-3 control-label required">Port</label>
<div class="col-md-9">
{{ form.protocol }}
{{ form.port }}
</div>
</div>
{% render_field form.ipaddresses %}
{% render_field form.description %}
</div>
</div>
{% endblock %}