From c7efd3d02de664a2f24a6dc572e9d0303e145de4 Mon Sep 17 00:00:00 2001 From: Benjamin Bertrand <benjamin.bertrand@esss.se> Date: Tue, 17 Sep 2019 10:51:02 +0200 Subject: [PATCH] Add broadcast address to network view JIRA INFRA-1291 #action In Progress --- app/models.py | 5 ++ app/templates/network/view_network.html | 72 +++++++++++++------------ tests/functional/test_api.py | 2 + 3 files changed, 44 insertions(+), 35 deletions(-) diff --git a/app/models.py b/app/models.py index e904ad4..ecdb0e8 100644 --- a/app/models.py +++ b/app/models.py @@ -868,6 +868,10 @@ class Network(CreatedMixin, db.Model): def netmask(self): return self.network_ip.netmask + @property + def broadcast(self): + return self.network_ip.broadcast_address + @property def first(self): return ipaddress.ip_address(self.first_ip) @@ -961,6 +965,7 @@ class Network(CreatedMixin, db.Model): "vlan_id": self.vlan_id, "address": self.address, "netmask": str(self.netmask), + "broadcast": str(self.broadcast), "first_ip": self.first_ip, "last_ip": self.last_ip, "gateway": self.gateway, diff --git a/app/templates/network/view_network.html b/app/templates/network/view_network.html index 8527eb9..2170093 100644 --- a/app/templates/network/view_network.html +++ b/app/templates/network/view_network.html @@ -4,42 +4,44 @@ {% block title %}View Ansible network - CSEntry{% endblock %} {% block networks_nav %} - <li class="nav-item"> - <a class="nav-link active" href="{{ url_for('network.view_network', vlan_name=network.vlan_name) }}">View network</a> - </li> +<li class="nav-item"> + <a class="nav-link active" href="{{ url_for('network.view_network', vlan_name=network.vlan_name) }}">View network</a> +</li> {% endblock %} {% block networks_main %} - <div class="row"> - <div class="col-sm-9"> - <dl class="row"> - <dt class="col-sm-3">Vlan name</dt> - <dd class="col-sm-9">{{ network.vlan_name }}</dd> - <dt class="col-sm-3">Vlan id</dt> - <dd class="col-sm-9">{{ network.vlan_id }}</dd> - <dt class="col-sm-3">Description</dt> - <dd class="col-sm-9">{{ network.description | safe }}</dd> - <dt class="col-sm-3">Address</dt> - <dd class="col-sm-9">{{ network.address }}</dd> - <dt class="col-sm-3">First IP</dt> - <dd class="col-sm-9">{{ network.first_ip }}</dd> - <dt class="col-sm-3">Last IP</dt> - <dd class="col-sm-9">{{ network.last_ip }}</dd> - <dt class="col-sm-3">Gateway</dt> - <dd class="col-sm-9">{{ network.gateway }}</dd> - <dt class="col-sm-3">Network Scope</dt> - <dd class="col-sm-9">{{ network.scope }}</dd> - <dt class="col-sm-3">Domain</dt> - <dd class="col-sm-9">{{ network.domain }}</dd> - <dt class="col-sm-3">Admin only</dt> - <dd class="col-sm-9">{{ network.admin_only }}</dd> - <dt class="col-sm-3">Hosts</dt> - <dd class="col-sm-9">{{ link_to_interfaces_host(network.interfaces) }}</dd> - <dt class="col-sm-3">Created by</dt> - <dd class="col-sm-9">{{ network.user }}</dd> - <dt class="col-sm-3">Created at</dt> - <dd class="col-sm-9">{{ network.created_at }}</dd> - </dl> - </div> +<div class="row"> + <div class="col-sm-9"> + <dl class="row"> + <dt class="col-sm-3">Vlan name</dt> + <dd class="col-sm-9">{{ network.vlan_name }}</dd> + <dt class="col-sm-3">Vlan id</dt> + <dd class="col-sm-9">{{ network.vlan_id }}</dd> + <dt class="col-sm-3">Description</dt> + <dd class="col-sm-9">{{ network.description | safe }}</dd> + <dt class="col-sm-3">Address</dt> + <dd class="col-sm-9">{{ network.address }}</dd> + <dt class="col-sm-3">First IP</dt> + <dd class="col-sm-9">{{ network.first_ip }}</dd> + <dt class="col-sm-3">Last IP</dt> + <dd class="col-sm-9">{{ network.last_ip }}</dd> + <dt class="col-sm-3">Gateway</dt> + <dd class="col-sm-9">{{ network.gateway }}</dd> + <dt class="col-sm-3">Broadcast</dt> + <dd class="col-sm-9">{{ network.broadcast }}</dd> + <dt class="col-sm-3">Network Scope</dt> + <dd class="col-sm-9">{{ network.scope }}</dd> + <dt class="col-sm-3">Domain</dt> + <dd class="col-sm-9">{{ network.domain }}</dd> + <dt class="col-sm-3">Admin only</dt> + <dd class="col-sm-9">{{ network.admin_only }}</dd> + <dt class="col-sm-3">Hosts</dt> + <dd class="col-sm-9">{{ link_to_interfaces_host(network.interfaces) }}</dd> + <dt class="col-sm-3">Created by</dt> + <dd class="col-sm-9">{{ network.user }}</dd> + <dt class="col-sm-3">Created at</dt> + <dd class="col-sm-9">{{ network.created_at }}</dd> + </dl> </div> -{%- endblock %} +</div> +{%- endblock %} \ No newline at end of file diff --git a/tests/functional/test_api.py b/tests/functional/test_api.py index 5ca9c1a..41cc3b0 100644 --- a/tests/functional/test_api.py +++ b/tests/functional/test_api.py @@ -723,6 +723,7 @@ def test_create_network(client, admin_token, network_scope_factory): "vlan_id", "address", "netmask", + "broadcast", "first_ip", "last_ip", "gateway", @@ -742,6 +743,7 @@ def test_create_network(client, admin_token, network_scope_factory): assert response.get_json()["last_ip"] == "172.16.1.250" assert response.get_json()["gateway"] == "172.16.1.254" assert response.get_json()["netmask"] == "255.255.255.0" + assert response.get_json()["broadcast"] == "172.16.1.255" # Check that address and name shall be unique response = post(client, f"{API_URL}/network/networks", data=data, token=admin_token) -- GitLab