mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-08 11:16:47 +00:00
libvirt's udev interface backend (RHEL 9 and later, Debian 12) only reads interfaces, so the create form and the start, stop and delete buttons only failed there. The pages ask the host with an invalid definition, which defines nothing: a backend without define refuses it as not supported. There they show the interface state and a note instead, and posts change nothing; the host's devices, needed only by the create form, are not read. Any other answer keeps the pages as they were.
103 lines
No EOL
4.8 KiB
HTML
103 lines
No EOL
4.8 KiB
HTML
{% extends "base.html" %}
|
|
{% load i18n %}
|
|
{% load bootstrap_icons %}
|
|
|
|
{% block title %}{% trans "Interface" %} - {{ iface }}{% endblock %}
|
|
|
|
{% block page_heading %}{% trans "Interface" %}: {{ iface }}{% endblock page_heading %}
|
|
|
|
{% block content %}
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<ol class="breadcrumb shadow-sm">
|
|
<li class="breadcrumb-item">
|
|
<a href="{% url 'overview' compute.id %}">{% bs_icon 'laptop' %} {% trans "Overview" %}</a>
|
|
</li>
|
|
<li class="breadcrumb-item">
|
|
<a href="{% url 'instances' compute.id %}">{% bs_icon 'server' %} {% trans "Instances" %}</a>
|
|
</li>
|
|
<li class="breadcrumb-item">
|
|
<a href="{% url 'storages' compute.id %}">{% bs_icon 'device-hdd' %} {% trans "Storages" %}</a>
|
|
</li>
|
|
<li class="breadcrumb-item">
|
|
<a href="{% url 'networks' compute.id %}">{% bs_icon 'hdd-network' %} {% trans "Networks" %}</a>
|
|
</li>
|
|
<li class="breadcrumb-item">
|
|
<a href="{% url 'interfaces' compute.id %}">{% bs_icon 'wifi' %} {% trans "Interfaces" %}</a>
|
|
</li>
|
|
<li class="breadcrumb-item">
|
|
<a href="{% url 'nwfilters' compute.id %}">{% bs_icon 'filter' %} {% trans "NWFilters" %}</a>
|
|
</li>
|
|
<li class="breadcrumb-item">
|
|
<a href="{% url 'virtsecrets' compute.id %}">{% bs_icon 'key' %} {% trans "Secrets" %}</a>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
|
|
{% if changeable is False %}{% include 'interfaces_unchangeable.html' %}{% endif %}
|
|
<div class="row">
|
|
<dl class="ms-3 row">
|
|
<dt class="col-4">{% trans "Interface" %}</dt>
|
|
<dd class="col-8"><strong>{{ iface }}</strong></dd>
|
|
<dt class="col-4">{% trans "IPv4" %} ({% if ipv4 == None %}{% trans 'None' %}{% else %}{{ ipv4_type }}{% endif %})</dt>
|
|
<dd class="col-8">{{ ipv4 }}</dd>
|
|
<dt class="col-4">{% trans "IPv6" %} ({% if ipv6 == None %}{% trans 'None' %}{% else %}{{ ipv6_type }}{% endif %})</dt>
|
|
<dd class="col-8">{{ ipv6 }}</dd>
|
|
<dt class="col-4">{% trans "MAC" %}</dt>
|
|
<dd class="col-8">{{ mac }}</dd>
|
|
<dt class="col-4">{% trans "Interface Type" %}</dt>
|
|
<dd class="col-8">{{ itype }}</dd>
|
|
{% if itype == 'bridge' %}
|
|
<dt class="col-4">{% trans "Bridge Device" %}</dt>
|
|
<dd class="col-8">{{ bridge }}</dd>
|
|
{% endif %}
|
|
<dt class="col-4">{% trans "Boot Mode" %}</dt>
|
|
<dd class="col-8">{{ start_mode }}</dd>
|
|
<dt class="col-4">{% trans "State" %}</dt>
|
|
<dd class="col-8">
|
|
{% if changeable is False %}
|
|
{% if state == 0 %}{% trans "Inactive" %}{% else %}{% trans "Active" %}{% endif %}
|
|
{% else %}
|
|
<form action="" method="post" role="form" aria-label="Interface start/stop/delete form">{% csrf_token %}
|
|
{% if state == 0 %}
|
|
<input type="submit" class="btn btn-sm btn-primary" name="start" value="{% trans "Start" %}">
|
|
<input type="submit" class="btn btn-sm btn-danger" name="delete" value="{% trans "Delete" %}" onclick="return confirm('{% trans "Are you sure?" %}')">
|
|
{% else %}
|
|
<input type="submit" class="btn btn-sm btn-secondary" name="stop" value="{% trans "Stop" %}" onclick="return confirm('{% trans "Are you sure?" %}')">
|
|
{% endif %}
|
|
</form>
|
|
{% endif %}
|
|
</dd>
|
|
</dl>
|
|
|
|
<div class="col-sm-12">
|
|
<h5>{% trans 'Slaves' %}</h5>
|
|
{% if itype == 'bridge' %}
|
|
<table class="table table-bordered">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col">{% trans 'MAC' %}</th>
|
|
<th scope="col">{% trans 'Name' %}</th>
|
|
<th scope="col">{% trans 'Type' %}</th>
|
|
<th scope="col">{% trans 'Speed' %}</th>
|
|
<th scope="col">{% trans 'State' %}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for iface in slave_ifaces %}
|
|
<tr>
|
|
<td>{{ iface.mac }}</td>
|
|
<td>{{ iface.name }}</td>
|
|
<td>{{ iface.type }}</td>
|
|
<td>{{ iface.speed }}</td>
|
|
<td>{{ iface.state }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
{% endblock %} |