capsul-flask/capsulflask/admin.py

58 lines
1.5 KiB
Python
Raw Normal View History

2021-07-08 19:10:14 +00:00
import re
import sys
import json
import ipaddress
from datetime import datetime, timedelta
from flask import Blueprint
from flask import flash
from flask import current_app
from flask import g
from flask import request
from flask import session
from flask import render_template
from flask import redirect
from flask import url_for
from werkzeug.exceptions import abort
from capsulflask.metrics import durations as metric_durations
from capsulflask.auth import admin_account_required
from capsulflask.db import get_model
from capsulflask.shared import my_exec_info_message
bp = Blueprint("admin", __name__, url_prefix="/admin")
@bp.route("/")
@admin_account_required
def index():
hosts = get_model().list_hosts_with_networks()
vms = get_model().all_non_deleted_vms()
operations = get_model().list_all_operations()
display_hosts = []
for kv in hosts.items():
name = kv[0]
value = kv[1]
for network in value['networks']:
network["network_name"]
ipv4_network = ipaddress.ip_network(network["public_ipv4_cidr_block"], False)
network_start_int = -1
network_end_int = -1
i = 0
for ipv4_address in ipv4_network:
i += 1
if i > 2:
if network_start_int == -1:
network_start_int = int(ipv4_address)
network_end_int = int(ipv4_address)
display_hosts.append(dict(name=name, last_health_check=value['last_health_check']))
return render_template("admin.html", vms=mappedVms, has_vms=len(vms) > 0, created=created)