mirror of
https://github.com/ComputerScienceHouse/proxstar.git
synced 2025-02-12 13:01:51 +00:00
Fix all pylint issues
This commit is contained in:
parent
631b75c9f8
commit
e72c83aafc
12 changed files with 80 additions and 74 deletions
|
@ -16,7 +16,11 @@ disable =
|
|||
locally-disabled,
|
||||
file-ignored,
|
||||
no-else-return,
|
||||
unnecessary-lambda
|
||||
unnecessary-lambda,
|
||||
wrong-import-position,
|
||||
logging-format-interpolation,
|
||||
bare-except,
|
||||
too-many-public-methods
|
||||
|
||||
[REPORTS]
|
||||
output-format = text
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import os
|
||||
import json
|
||||
import time
|
||||
import psutil
|
||||
import atexit
|
||||
import logging
|
||||
import psycopg2
|
||||
import subprocess
|
||||
import psutil
|
||||
import psycopg2
|
||||
import rq_dashboard
|
||||
from rq import Queue
|
||||
from redis import Redis
|
||||
|
@ -13,13 +13,15 @@ from rq_scheduler import Scheduler
|
|||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
from flask import Flask, render_template, request, redirect, session, abort
|
||||
from proxstar.db import *
|
||||
from proxstar.vnc import *
|
||||
from proxstar.db import (Base, datetime, get_pool_cache, renew_vm_expire, set_user_usage_limits, get_template,
|
||||
get_templates, get_allowed_users, add_ignored_pool, delete_ignored_pool, add_allowed_user, delete_allowed_user,
|
||||
get_template_disk, set_template_info, url_for)
|
||||
from proxstar.vnc import (send_stop_ssh_tunnel, stop_ssh_tunnel, add_vnc_target, start_ssh_tunnel, get_vnc_targets,
|
||||
delete_vnc_target, stop_websockify)
|
||||
from proxstar.auth import get_auth
|
||||
from proxstar.util import gen_password
|
||||
from proxstar.starrs import *
|
||||
from proxstar.ldapdb import *
|
||||
from proxstar.proxmox import *
|
||||
from proxstar.starrs import check_hostname, renew_ip
|
||||
from proxstar.proxmox import connect_proxmox, get_isos, get_pools, get_ignored_pools
|
||||
|
||||
logging.basicConfig(
|
||||
format='%(asctime)s %(levelname)s %(message)s', level=logging.INFO)
|
||||
|
@ -37,8 +39,8 @@ app.config.from_pyfile(config)
|
|||
app.config["GIT_REVISION"] = subprocess.check_output(
|
||||
['git', 'rev-parse', '--short', 'HEAD']).decode('utf-8').rstrip()
|
||||
|
||||
with open('proxmox_ssh_key', 'w') as key:
|
||||
key.write(app.config['PROXMOX_SSH_KEY'])
|
||||
with open('proxmox_ssh_key', 'w') as ssh_key_file:
|
||||
ssh_key_file.write(app.config['PROXMOX_SSH_KEY'])
|
||||
|
||||
ssh_tunnels = []
|
||||
|
||||
|
@ -60,7 +62,8 @@ starrs = psycopg2.connect(
|
|||
|
||||
from proxstar.vm import VM
|
||||
from proxstar.user import User
|
||||
from proxstar.tasks import generate_pool_cache_task, process_expiring_vms_task, cleanup_vnc_task, delete_vm_task, create_vm_task, setup_template_task
|
||||
from proxstar.tasks import (generate_pool_cache_task, process_expiring_vms_task, cleanup_vnc_task,
|
||||
delete_vm_task, create_vm_task, setup_template_task)
|
||||
|
||||
if 'generate_pool_cache' not in scheduler:
|
||||
logging.info('adding generate pool cache task to scheduler')
|
||||
|
@ -87,7 +90,7 @@ if 'cleanup_vnc' not in scheduler:
|
|||
def add_rq_dashboard_auth(blueprint):
|
||||
@blueprint.before_request
|
||||
@auth.oidc_auth
|
||||
def rq_dashboard_auth(*args, **kwargs):
|
||||
def rq_dashboard_auth(*args, **kwargs): #pylint: disable=unused-argument,unused-variable
|
||||
if 'rtp' not in session['userinfo']['groups']:
|
||||
abort(403)
|
||||
|
||||
|
@ -100,13 +103,13 @@ app.register_blueprint(rq_dashboard_blueprint, url_prefix="/rq")
|
|||
@app.errorhandler(404)
|
||||
def not_found(e):
|
||||
user = User(session['userinfo']['preferred_username'])
|
||||
return render_template('404.html', user=user), 404
|
||||
return render_template('404.html', user=user, e=e), 404
|
||||
|
||||
|
||||
@app.errorhandler(403)
|
||||
def forbidden(e):
|
||||
user = User(session['userinfo']['preferred_username'])
|
||||
return render_template('403.html', user=user), 403
|
||||
return render_template('403.html', user=user, e=e), 403
|
||||
|
||||
|
||||
@app.route("/")
|
||||
|
@ -115,7 +118,7 @@ def forbidden(e):
|
|||
def list_vms(user_view=None):
|
||||
user = User(session['userinfo']['preferred_username'])
|
||||
rtp_view = False
|
||||
proxmox = connect_proxmox()
|
||||
connect_proxmox()
|
||||
if user_view and not user.rtp:
|
||||
abort(403)
|
||||
elif user_view and user.rtp:
|
||||
|
@ -155,8 +158,8 @@ def list_vms(user_view=None):
|
|||
@auth.oidc_auth
|
||||
def isos():
|
||||
proxmox = connect_proxmox()
|
||||
isos = get_isos(proxmox, app.config['PROXMOX_ISO_STORAGE'])
|
||||
return json.dumps({"isos": isos})
|
||||
stored_isos = get_isos(proxmox, app.config['PROXMOX_ISO_STORAGE'])
|
||||
return json.dumps({"isos": stored_isos})
|
||||
|
||||
|
||||
@app.route("/hostname/<string:name>")
|
||||
|
@ -175,7 +178,7 @@ def hostname(name):
|
|||
@auth.oidc_auth
|
||||
def vm_details(vmid):
|
||||
user = User(session['userinfo']['preferred_username'])
|
||||
proxmox = connect_proxmox()
|
||||
connect_proxmox()
|
||||
if user.rtp or int(vmid) in user.allowed_vms:
|
||||
vm = VM(vmid)
|
||||
usage_check = user.check_usage(vm.cpu, vm.mem, 0)
|
||||
|
@ -188,18 +191,19 @@ def vm_details(vmid):
|
|||
usage_check=usage_check)
|
||||
else:
|
||||
abort(403)
|
||||
return None
|
||||
|
||||
|
||||
@app.route("/vm/<string:vmid>/power/<string:action>", methods=['POST'])
|
||||
@auth.oidc_auth
|
||||
def vm_power(vmid, action):
|
||||
user = User(session['userinfo']['preferred_username'])
|
||||
proxmox = connect_proxmox()
|
||||
connect_proxmox()
|
||||
if user.rtp or int(vmid) in user.allowed_vms:
|
||||
vm = VM(vmid)
|
||||
if action == 'start':
|
||||
config = vm.config
|
||||
usage_check = user.check_usage(config['cores'], config['memory'],
|
||||
vmconfig = vm.config
|
||||
usage_check = user.check_usage(vmconfig['cores'], vmconfig['memory'],
|
||||
0)
|
||||
if usage_check:
|
||||
return usage_check
|
||||
|
@ -235,7 +239,7 @@ def vm_console_stop(vmid):
|
|||
@auth.oidc_auth
|
||||
def vm_console(vmid):
|
||||
user = User(session['userinfo']['preferred_username'])
|
||||
proxmox = connect_proxmox()
|
||||
connect_proxmox()
|
||||
if user.rtp or int(vmid) in user.allowed_vms:
|
||||
vm = VM(vmid)
|
||||
stop_ssh_tunnel(vm.id, ssh_tunnels)
|
||||
|
@ -255,7 +259,7 @@ def vm_console(vmid):
|
|||
@auth.oidc_auth
|
||||
def vm_cpu(vmid, cores):
|
||||
user = User(session['userinfo']['preferred_username'])
|
||||
proxmox = connect_proxmox()
|
||||
connect_proxmox()
|
||||
if user.rtp or int(vmid) in user.allowed_vms:
|
||||
vm = VM(vmid)
|
||||
cur_cores = vm.cpu
|
||||
|
@ -276,7 +280,7 @@ def vm_cpu(vmid, cores):
|
|||
@auth.oidc_auth
|
||||
def vm_mem(vmid, mem):
|
||||
user = User(session['userinfo']['preferred_username'])
|
||||
proxmox = connect_proxmox()
|
||||
connect_proxmox()
|
||||
if user.rtp or int(vmid) in user.allowed_vms:
|
||||
vm = VM(vmid)
|
||||
cur_mem = vm.mem // 1024
|
||||
|
@ -297,10 +301,9 @@ def vm_mem(vmid, mem):
|
|||
@auth.oidc_auth
|
||||
def vm_disk(vmid, disk, size):
|
||||
user = User(session['userinfo']['preferred_username'])
|
||||
proxmox = connect_proxmox()
|
||||
connect_proxmox()
|
||||
if user.rtp or int(vmid) in user.allowed_vms:
|
||||
vm = VM(vmid)
|
||||
cur_cores = vm.cpu
|
||||
usage_check = user.check_usage(0, 0, size)
|
||||
if usage_check:
|
||||
return usage_check
|
||||
|
@ -314,7 +317,7 @@ def vm_disk(vmid, disk, size):
|
|||
@auth.oidc_auth
|
||||
def vm_renew(vmid):
|
||||
user = User(session['userinfo']['preferred_username'])
|
||||
proxmox = connect_proxmox()
|
||||
connect_proxmox()
|
||||
if user.rtp or int(vmid) in user.allowed_vms:
|
||||
vm = VM(vmid)
|
||||
renew_vm_expire(db, vmid, app.config['VM_EXPIRE_MONTHS'])
|
||||
|
@ -330,7 +333,7 @@ def vm_renew(vmid):
|
|||
@auth.oidc_auth
|
||||
def iso_eject(vmid):
|
||||
user = User(session['userinfo']['preferred_username'])
|
||||
proxmox = connect_proxmox()
|
||||
connect_proxmox()
|
||||
if user.rtp or int(vmid) in user.allowed_vms:
|
||||
vm = VM(vmid)
|
||||
vm.eject_iso()
|
||||
|
@ -343,7 +346,7 @@ def iso_eject(vmid):
|
|||
@auth.oidc_auth
|
||||
def iso_mount(vmid, iso):
|
||||
user = User(session['userinfo']['preferred_username'])
|
||||
proxmox = connect_proxmox()
|
||||
connect_proxmox()
|
||||
if user.rtp or int(vmid) in user.allowed_vms:
|
||||
iso = "{}:iso/{}".format(app.config['PROXMOX_ISO_STORAGE'], iso)
|
||||
vm = VM(vmid)
|
||||
|
@ -357,7 +360,7 @@ def iso_mount(vmid, iso):
|
|||
@auth.oidc_auth
|
||||
def delete(vmid):
|
||||
user = User(session['userinfo']['preferred_username'])
|
||||
proxmox = connect_proxmox()
|
||||
connect_proxmox()
|
||||
if user.rtp or int(vmid) in user.allowed_vms:
|
||||
send_stop_ssh_tunnel(vmid)
|
||||
# Submit the delete VM task to RQ
|
||||
|
@ -369,9 +372,9 @@ def delete(vmid):
|
|||
|
||||
@app.route("/vm/<string:vmid>/boot_order", methods=['POST'])
|
||||
@auth.oidc_auth
|
||||
def boot_order(vmid):
|
||||
def get_boot_order(vmid):
|
||||
user = User(session['userinfo']['preferred_username'])
|
||||
proxmox = connect_proxmox()
|
||||
connect_proxmox()
|
||||
if user.rtp or int(vmid) in user.allowed_vms:
|
||||
boot_order = []
|
||||
for key in sorted(request.form):
|
||||
|
@ -390,7 +393,7 @@ def create():
|
|||
proxmox = connect_proxmox()
|
||||
if user.active or user.rtp:
|
||||
if request.method == 'GET':
|
||||
isos = get_isos(proxmox, app.config['PROXMOX_ISO_STORAGE'])
|
||||
stored_isos = get_isos(proxmox, app.config['PROXMOX_ISO_STORAGE'])
|
||||
pools = get_pools(proxmox, db)
|
||||
templates = get_templates(db)
|
||||
return render_template(
|
||||
|
@ -399,7 +402,7 @@ def create():
|
|||
usage=user.usage,
|
||||
limits=user.limits,
|
||||
percents=user.usage_percent,
|
||||
isos=isos,
|
||||
isos=stored_isos,
|
||||
pools=pools,
|
||||
templates=templates)
|
||||
elif request.method == 'POST':
|
||||
|
@ -449,6 +452,7 @@ def create():
|
|||
timeout=600)
|
||||
return '', 200
|
||||
return '', 200
|
||||
return None
|
||||
else:
|
||||
return '', 403
|
||||
|
||||
|
@ -470,7 +474,7 @@ def set_limits(user):
|
|||
@auth.oidc_auth
|
||||
def delete_user(user):
|
||||
if 'rtp' in session['userinfo']['groups']:
|
||||
proxmox = connect_proxmox()
|
||||
connect_proxmox()
|
||||
User(user).delete()
|
||||
return '', 200
|
||||
else:
|
||||
|
@ -483,16 +487,17 @@ def settings():
|
|||
user = User(session['userinfo']['preferred_username'])
|
||||
if user.rtp:
|
||||
templates = get_templates(db)
|
||||
ignored_pools = get_ignored_pools(db)
|
||||
allowed_users = get_allowed_users(db)
|
||||
db_ignored_pools = get_ignored_pools(db)
|
||||
db_allowed_users = get_allowed_users(db)
|
||||
return render_template(
|
||||
'settings.html',
|
||||
user=user,
|
||||
templates=templates,
|
||||
ignored_pools=ignored_pools,
|
||||
allowed_users=allowed_users)
|
||||
ignored_pools=db_ignored_pools,
|
||||
allowed_users=db_allowed_users)
|
||||
else:
|
||||
abort(403)
|
||||
return None
|
||||
|
||||
|
||||
@app.route("/pool/<string:pool>/ignore", methods=['POST', 'DELETE'])
|
||||
|
|
|
@ -8,5 +8,4 @@ def get_auth(app):
|
|||
app,
|
||||
issuer=app.config['OIDC_ISSUER'],
|
||||
client_registration_info=app.config['OIDC_CLIENT_CONFIG'])
|
||||
auth
|
||||
return auth
|
||||
|
|
|
@ -3,8 +3,8 @@ import datetime
|
|||
from dateutil.relativedelta import relativedelta
|
||||
from sqlalchemy import exists
|
||||
|
||||
from proxstar.ldapdb import *
|
||||
from proxstar.models import (Allowed_Users, Base, Ignored_Pools, Pool_Cache,
|
||||
from proxstar.ldapdb import is_rtp
|
||||
from proxstar.models import (Allowed_Users, Ignored_Pools, Pool_Cache,
|
||||
Template, Usage_Limit, VM_Expiration)
|
||||
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ def is_current_student(user):
|
|||
def is_user(user):
|
||||
ldap = connect_ldap()
|
||||
try:
|
||||
rtp_group = ldap.get_member(user, uid=True)
|
||||
ldap.get_member(user, uid=True)
|
||||
return True
|
||||
except:
|
||||
return False
|
||||
|
|
|
@ -2,7 +2,7 @@ from flask import current_app as app
|
|||
from proxmoxer import ProxmoxAPI
|
||||
|
||||
from proxstar import logging
|
||||
from proxstar.db import get_ignored_pools, get_user_usage_limits
|
||||
from proxstar.db import get_ignored_pools
|
||||
from proxstar.ldapdb import is_user
|
||||
|
||||
|
||||
|
@ -14,7 +14,7 @@ def connect_proxmox():
|
|||
user=app.config['PROXMOX_USER'],
|
||||
password=app.config['PROXMOX_PASS'],
|
||||
verify_ssl=False)
|
||||
version = proxmox.version.get()
|
||||
proxmox.version.get()
|
||||
return proxmox
|
||||
except:
|
||||
if app.config['PROXMOX_HOSTS'].index(host) == (
|
||||
|
@ -33,7 +33,7 @@ def connect_proxmox_ssh():
|
|||
private_key_file='proxmox_ssh_key',
|
||||
password=app.config['PROXMOX_SSH_KEY_PASS'],
|
||||
backend='ssh_paramiko')
|
||||
version = proxmox.version.get()
|
||||
proxmox.version.get()
|
||||
return proxmox
|
||||
except:
|
||||
if app.config['PROXMOX_HOSTS'].index(host) == (
|
||||
|
@ -58,6 +58,7 @@ def get_vm_node(proxmox, vmid):
|
|||
for vm in proxmox.cluster.resources.get(type='vm'):
|
||||
if vm['vmid'] == int(vmid):
|
||||
return vm['node']
|
||||
return None
|
||||
|
||||
|
||||
def get_isos(proxmox, storage):
|
||||
|
|
|
@ -72,7 +72,7 @@ def check_hostname(starrs, hostname):
|
|||
if c.fetchall():
|
||||
available = False
|
||||
c.execute("COMMIT")
|
||||
except (psycopg2.InternalError):
|
||||
except psycopg2.InternalError:
|
||||
valid = False
|
||||
available = False
|
||||
finally:
|
||||
|
|
|
@ -2,7 +2,6 @@ import logging
|
|||
import os
|
||||
import time
|
||||
|
||||
import paramiko
|
||||
import psycopg2
|
||||
import requests
|
||||
from flask import Flask
|
||||
|
@ -10,12 +9,11 @@ from rq import get_current_job
|
|||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
|
||||
from proxstar.db import *
|
||||
from proxstar.mail import *
|
||||
from proxstar.db import Base, get_vm_expire, delete_vm_expire, datetime, store_pool_cache, get_template
|
||||
from proxstar.mail import send_vm_expire_email, send_rtp_vm_delete_email
|
||||
from proxstar.proxmox import connect_proxmox, get_pools
|
||||
from proxstar.starrs import *
|
||||
from proxstar.starrs import get_next_ip, register_starrs, delete_starrs
|
||||
from proxstar.user import User, get_vms_for_rtp
|
||||
from proxstar.util import *
|
||||
from proxstar.vm import VM, clone_vm, create_vm
|
||||
from proxstar.vnc import send_stop_ssh_tunnel
|
||||
|
||||
|
@ -36,8 +34,8 @@ app.config.from_pyfile(config)
|
|||
def connect_db():
|
||||
engine = create_engine(app.config['SQLALCHEMY_DATABASE_URI'])
|
||||
Base.metadata.bind = engine
|
||||
DBSession = sessionmaker(bind=engine)
|
||||
db = DBSession()
|
||||
dbsession = sessionmaker(bind=engine)
|
||||
db = dbsession()
|
||||
return db
|
||||
|
||||
|
||||
|
@ -114,7 +112,7 @@ def process_expiring_vms_task():
|
|||
with app.app_context():
|
||||
proxmox = connect_proxmox()
|
||||
db = connect_db()
|
||||
starrs = connect_starrs()
|
||||
connect_starrs()
|
||||
pools = get_pools(proxmox, db)
|
||||
expired_vms = []
|
||||
for pool in pools:
|
||||
|
@ -125,7 +123,6 @@ def process_expiring_vms_task():
|
|||
vm = VM(vm['vmid'])
|
||||
days = (vm.expire - datetime.date.today()).days
|
||||
if days in [10, 7, 3, 1, 0, -1, -2, -3, -4, -5, -6]:
|
||||
name = vm.name
|
||||
expiring_vms.append([vm.id, vm.name, days])
|
||||
if days <= 0:
|
||||
expired_vms.append([vm.id, vm.name, days])
|
||||
|
@ -158,7 +155,7 @@ def setup_template_task(template_id, name, user, ssh_key, cores, memory):
|
|||
db = connect_db()
|
||||
logging.info("[{}] Retrieving template info for template {}.".format(
|
||||
name, template_id))
|
||||
template = get_template(db, template_id)
|
||||
get_template(db, template_id)
|
||||
logging.info("[{}] Cloning template {}.".format(name, template_id))
|
||||
set_job_status(job, 'cloning template')
|
||||
vmid = clone_vm(proxmox, template_id, name, user)
|
||||
|
|
|
@ -2,13 +2,13 @@ from proxmoxer.core import ResourceException
|
|||
from rq.registry import StartedJobRegistry
|
||||
|
||||
from proxstar import db, q, redis_conn
|
||||
from proxstar.db import *
|
||||
from proxstar.proxmox import *
|
||||
from proxstar.util import *
|
||||
from proxstar.db import get_allowed_users, is_active, is_current_student, is_rtp, is_user, get_user_usage_limits
|
||||
from proxstar.proxmox import connect_proxmox, get_pools
|
||||
from proxstar.util import lazy_property
|
||||
from proxstar.vm import VM
|
||||
|
||||
|
||||
class User(object):
|
||||
class User():
|
||||
def __init__(self, username):
|
||||
self.name = username
|
||||
self.active = is_active(self.name) or is_current_student(
|
||||
|
@ -96,11 +96,12 @@ class User(object):
|
|||
def check_usage(self, cpu, mem, disk):
|
||||
if int(self.usage['cpu']) + int(cpu) > int(self.limits['cpu']):
|
||||
return 'exceeds_cpu_limit'
|
||||
elif int(self.usage['mem']) + (int(mem) / 1024) > int(
|
||||
self.limits['mem']):
|
||||
elif int(self.usage['mem']) + (int(mem) / 1024) > int(self.limits['mem']):
|
||||
return 'exceeds_memory_limit'
|
||||
elif int(self.usage['disk']) + int(disk) > int(self.limits['disk']):
|
||||
return 'exceeds_disk_limit'
|
||||
else:
|
||||
return None
|
||||
|
||||
def delete(self):
|
||||
proxmox = connect_proxmox()
|
||||
|
@ -114,9 +115,9 @@ class User(object):
|
|||
self.name)).delete()
|
||||
|
||||
|
||||
def get_vms_for_rtp(proxmox, db):
|
||||
def get_vms_for_rtp(proxmox, database):
|
||||
pools = []
|
||||
for pool in get_pools(proxmox, db):
|
||||
for pool in get_pools(proxmox, database):
|
||||
user = User(pool)
|
||||
pool_dict = dict()
|
||||
pool_dict['user'] = user.name
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
import random
|
||||
import string
|
||||
|
||||
|
||||
def gen_password(
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
import json
|
||||
import time
|
||||
import urllib
|
||||
|
||||
from flask import current_app as app
|
||||
|
@ -12,7 +11,7 @@ from proxstar.starrs import get_ip_for_mac
|
|||
from proxstar.util import lazy_property
|
||||
|
||||
|
||||
class VM(object):
|
||||
class VM():
|
||||
def __init__(self, vmid):
|
||||
self.id = vmid
|
||||
|
||||
|
@ -52,6 +51,7 @@ class VM(object):
|
|||
for vm in proxmox.cluster.resources.get(type='vm'):
|
||||
if vm['vmid'] == int(self.id):
|
||||
return vm['node']
|
||||
return None
|
||||
|
||||
@retry(wait=wait_fixed(2), stop=stop_after_attempt(5))
|
||||
def delete(self):
|
||||
|
@ -127,8 +127,8 @@ class VM(object):
|
|||
}
|
||||
raw_boot_order = self.config.get('boot', 'cdn')
|
||||
boot_order = []
|
||||
for i in range(0, len(raw_boot_order)):
|
||||
boot_order.append(boot_order_lookup[raw_boot_order[i]])
|
||||
for order in raw_boot_order:
|
||||
boot_order.append(boot_order_lookup[order])
|
||||
return boot_order
|
||||
|
||||
@lazy_property
|
||||
|
@ -145,14 +145,14 @@ class VM(object):
|
|||
'Network': 'n'
|
||||
}
|
||||
raw_boot_order = ''
|
||||
for i in range(0, len(boot_order)):
|
||||
raw_boot_order += boot_order_lookup[boot_order[i]]
|
||||
for order in boot_order:
|
||||
raw_boot_order += boot_order_lookup[order]
|
||||
proxmox.nodes(self.node).qemu(self.id).config.put(boot=raw_boot_order)
|
||||
|
||||
@lazy_property
|
||||
def interfaces(self):
|
||||
interfaces = []
|
||||
for key, val in self.config.items():
|
||||
for key, _ in self.config.items():
|
||||
if 'net' in key:
|
||||
mac = self.config[key].split(',')
|
||||
valid_int_types = ['virtio', 'e1000', 'rtl8139', 'vmxnet3']
|
||||
|
|
|
@ -7,7 +7,7 @@ from flask import current_app as app
|
|||
from sshtunnel import SSHTunnelForwarder
|
||||
|
||||
from proxstar import logging
|
||||
from proxstar.util import *
|
||||
from proxstar.util import gen_password
|
||||
|
||||
|
||||
def stop_websockify():
|
||||
|
|
Loading…
Reference in a new issue