2021-03-26 20:19:19 -04:00
{% extends 'virtualization/virtualmachine/base.html' %}
2019-12-06 16:13:52 -05:00
{% load buttons %}
2020-01-06 20:18:44 +00:00
{% load static %}
2017-08-04 17:02:52 -04:00
{% load helpers %}
2020-03-15 23:45:18 -04:00
{% load plugins %}
2023-07-29 03:30:25 +07:00
{% load i18n %}
2017-08-04 17:02:52 -04:00
2018-06-14 16:15:14 -04:00
{% block content %}
2021-04-17 18:15:53 -07:00
< div class = "row my-3" >
2021-04-30 15:55:37 -07:00
< div class = "col col-md-6" >
2021-04-17 18:15:53 -07:00
< div class = "card" >
2024-01-17 16:25:42 -05:00
< h5 class = "card-header" > {% trans "Virtual Machine" %}< / h5 >
< table class = "table table-hover attr-table" >
< tr >
< th scope = "row" > {% trans "Name" %}< / th >
< td > {{ object }}< / td >
< / tr >
< tr >
< th scope = "row" > {% trans "Status" %}< / th >
< td > {% badge object.get_status_display bg_color=object.get_status_color %}< / td >
< / tr >
< tr >
< th scope = "row" > {% trans "Role" %}< / th >
< td > {{ object.role|linkify|placeholder }}< / td >
< / tr >
< tr >
< th scope = "row" > {% trans "Platform" %}< / th >
< td > {{ object.platform|linkify|placeholder }}< / td >
< / tr >
< tr >
< th scope = "row" > {% trans "Description" %}< / th >
< td > {{ object.description|placeholder }}< / td >
< / tr >
< tr >
< th scope = "row" > {% trans "Tenant" %}< / th >
< td >
{% if object.tenant.group %}
{{ object.tenant.group|linkify }} /
{% endif %}
{{ object.tenant|linkify|placeholder }}
< / td >
< / tr >
< tr >
< th scope = "row" > {% trans "Config Template" %}< / th >
< td > {{ object.config_template|linkify|placeholder }}< / td >
< / tr >
< tr >
< th scope = "row" > {% trans "Primary IPv4" %}< / th >
< td >
{% if object.primary_ip4 %}
< a href = "{% url 'ipam:ipaddress' pk=object.primary_ip4.pk %}" id = "primary_ip4" > {{ object.primary_ip4.address.ip }}< / a >
{% if object.primary_ip4.nat_inside %}
({% trans "NAT for" %} < a href = "{{ object.primary_ip4.nat_inside.get_absolute_url }}" > {{ object.primary_ip4.nat_inside.address.ip }}< / a > )
{% elif object.primary_ip4.nat_outside.exists %}
({% trans "NAT" %}: {% for nat in object.primary_ip4.nat_outside.all %}< a href = "{{ nat.get_absolute_url }}" > {{ nat.address.ip }}< / a > {% if not forloop.last %}, {% endif %}{% endfor %})
{% endif %}
{% copy_content "primary_ip4" %}
{% else %}
{{ ''|placeholder }}
{% endif %}
< / td >
< / tr >
< tr >
< th scope = "row" > {% trans "Primary IPv6" %}< / th >
< td >
{% if object.primary_ip6 %}
< a href = "{% url 'ipam:ipaddress' pk=object.primary_ip6.pk %}" id = "primary_ip6" > {{ object.primary_ip6.address.ip }}< / a >
{% if object.primary_ip6.nat_inside %}
({% trans "NAT for" %} < a href = "{{ object.primary_ip6.nat_inside.get_absolute_url }}" > {{ object.primary_ip6.nat_inside.address.ip }}< / a > )
{% elif object.primary_ip6.nat_outside.exists %}
({% trans "NAT" %}: {% for nat in object.primary_ip6.nat_outside.all %}< a href = "{{ nat.get_absolute_url }}" > {{ nat.address.ip }}< / a > {% if not forloop.last %}, {% endif %}{% endfor %})
{% endif %}
{% copy_content "primary_ip6" %}
{% else %}
{{ ''|placeholder }}
{% endif %}
< / td >
< / tr >
< / table >
2017-08-16 17:00:17 -04:00
< / div >
2021-10-19 14:21:31 -04:00
{% include 'inc/panels/custom_fields.html' %}
2021-10-21 11:23:31 -04:00
{% include 'inc/panels/tags.html' %}
2021-10-19 14:21:31 -04:00
{% include 'inc/panels/comments.html' %}
2020-11-19 12:24:52 -05:00
{% plugin_left_page object %}
2017-11-03 16:58:56 -04:00
< / div >
2021-04-30 15:55:37 -07:00
< div class = "col col-md-6" >
2021-04-17 18:15:53 -07:00
< div class = "card" >
2023-07-29 03:30:25 +07:00
< h5 class = "card-header" > {% trans "Cluster" %}< / h5 >
2024-01-17 16:25:42 -05:00
< table class = "table table-hover attr-table" >
< tr >
< th scope = "row" > {% trans "Site" %}< / th >
< td >
{{ object.site|linkify|placeholder }}
< / td >
< / tr >
< tr >
< th scope = "row" > {% trans "Cluster" %}< / th >
< td >
{% if object.cluster.group %}
{{ object.cluster.group|linkify }} /
{% endif %}
{{ object.cluster|linkify|placeholder }}
< / td >
< / tr >
< tr >
< th scope = "row" > {% trans "Cluster Type" %}< / th >
< td > {{ object.cluster.type }}< / td >
< / tr >
< tr >
< th scope = "row" > {% trans "Device" %}< / th >
< td >
{{ object.device|linkify|placeholder }}
< / td >
< / tr >
< / table >
2017-09-29 11:13:41 -04:00
< / div >
2021-04-17 18:15:53 -07:00
< div class = "card" >
2023-07-29 03:30:25 +07:00
< h5 class = "card-header" > {% trans "Resources" %}< / h5 >
2024-01-17 16:25:42 -05:00
< table class = "table table-hover attr-table" >
< tr >
< th scope = "row" > < i class = "mdi mdi-gauge" > < / i > {% trans "Virtual CPUs" %}< / th >
< td > {{ object.vcpus|placeholder }}< / td >
< / tr >
< tr >
< th scope = "row" > < i class = "mdi mdi-chip" > < / i > {% trans "Memory" %}< / th >
< td >
{% if object.memory %}
{{ object.memory|humanize_megabytes }}
2023-11-17 12:02:56 -08:00
{% else %}
2024-01-17 16:25:42 -05:00
{{ ''|placeholder }}
2023-11-17 12:02:56 -08:00
{% endif %}
2024-01-17 16:25:42 -05:00
< / td >
< / tr >
< tr >
< th scope = "row" >
< i class = "mdi mdi-harddisk" > < / i > {% trans "Disk Space" %}
< / th >
< td >
{% if object.disk %}
{{ object.disk }} {% trans "GB" context "Abbreviation for gigabyte" %}
{% else %}
{{ ''|placeholder }}
{% endif %}
< / td >
< / tr >
< / table >
2017-08-04 17:02:52 -04:00
< / div >
2023-01-25 20:25:06 -05:00
< div class = "card" >
2024-01-30 20:55:28 -05:00
< h5 class = "card-header" >
{% trans "Services" %}
{% if perms.ipam.add_service %}
< div class = "card-actions" >
< a href = "{% url 'ipam:service_add' %}?virtual_machine={{ object.pk }}" class = "btn btn-ghost-primary btn-sm" >
< span class = "mdi mdi-plus-thick" aria-hidden = "true" > < / span > {% trans "Add a service" %}
< / a >
< / div >
{% endif %}
< / h5 >
2024-01-30 15:21:44 -05:00
{% htmx_table 'ipam:service_list' virtual_machine_id=object.pk %}
2023-01-25 20:25:06 -05:00
< / div >
2020-11-19 12:24:52 -05:00
{% plugin_right_page object %}
2020-03-15 23:45:18 -04:00
< / div >
< / div >
2023-11-17 12:02:56 -08:00
< div class = "row" >
< div class = "col col-md-12" >
< div class = "card" >
2024-01-30 20:55:28 -05:00
< h5 class = "card-header" >
{% trans "Virtual Disks" %}
{% if perms.virtualization.add_virtualdisk %}
< div class = "card-actions" >
< a href = "{% url 'virtualization:virtualdisk_add' %}?device={{ object.device.pk }}&virtual_machine={{ object.pk }}&return_url={{ object.get_absolute_url }}" class = "btn btn-ghost-primary btn-sm" >
< span class = "mdi mdi-plus-thick" aria-hidden = "true" > < / span > {% trans "Add Virtual Disk" %}
< / a >
< / div >
{% endif %}
< / h5 >
2024-01-30 15:21:44 -05:00
{% htmx_table 'virtualization:virtualdisk_list' virtual_machine_id=object.pk %}
2023-11-17 12:02:56 -08:00
< / div >
< / div >
< / div >
2020-03-15 23:45:18 -04:00
< div class = "row" >
2021-04-30 15:55:37 -07:00
< div class = "col col-md-12" >
2020-11-19 12:24:52 -05:00
{% plugin_full_width_page object %}
2017-08-04 17:02:52 -04:00
< / div >
2017-11-03 16:58:56 -04:00
< / div >
2017-08-04 17:02:52 -04:00
{% endblock %}