set version pyoidc, clean up js, fix alumni rtp stuff

This commit is contained in:
Jordan Rodgers 2018-09-17 21:34:13 -04:00
parent d0995365dd
commit 820a1c999e
6 changed files with 34 additions and 163 deletions

View file

@ -389,7 +389,7 @@ def boot_order(vmid):
def create(): def create():
user = User(session['userinfo']['preferred_username']) user = User(session['userinfo']['preferred_username'])
proxmox = connect_proxmox() proxmox = connect_proxmox()
if user.active: if user.active or user.rtp:
if request.method == 'GET': if request.method == 'GET':
isos = get_isos(proxmox, app.config['PROXMOX_ISO_STORAGE']) isos = get_isos(proxmox, app.config['PROXMOX_ISO_STORAGE'])
pools = get_pools(proxmox, db) pools = get_pools(proxmox, db)

View file

@ -192,8 +192,8 @@ def delete_allowed_user(db, user):
def set_template_info(db, template_id, name, disk): def set_template_info(db, template_id, name, disk):
if db.query(exists().where(Template.id == template_id, )).scalar(): if db.query(exists().where(Template.id == template_id, )).scalar():
template = db.query(Template).filter(Template.id == template_id, template = db.query(Template).filter(
).one() Template.id == template_id, ).one()
template.name = name template.name = name
template.disk = disk template.disk = disk
db.commit() db.commit()

View file

@ -4,36 +4,34 @@ $(document).ready(function(){
$('[data-toggle="tooltip"]').tooltip(); $('[data-toggle="tooltip"]').tooltip();
}); });
$("#delete-vm").click(function(){ function confirmDialog(url, confirm, confirmButton, complete, error, location) {
const vmname = $(this).data('vmname');
swal({ swal({
title: `Are you sure you want to delete ${vmname}?`, title: confirm,
icon: "warning", icon: "warning",
buttons: { buttons: {
cancel: true, cancel: true,
delete: { action: {
text: "Delete", text: confirmButton,
closeModal: false, closeModal: false,
className: "swal-button--danger", className: "swal-button--danger",
} }
}, },
dangerMode: true, dangerMode: true,
}) })
.then((willDelete) => { .then((willComplete) => {
if (willDelete) { if (willComplete) {
const vmid = $(this).data('vmid'); fetch(url, {
fetch(`/vm/${vmid}/delete`, {
credentials: 'same-origin', credentials: 'same-origin',
method: 'post' method: 'post'
}).then((response) => { }).then((response) => {
return swal(`${vmname} is now being deleted.`, { return swal(complete, {
icon: "success", icon: "success",
}); });
}).then(() => { }).then(() => {
window.location = "/"; window.location = location;
}).catch(err => { }).catch(err => {
if (err) { if (err) {
swal("Uh oh...", `Unable to delete ${vmname}. Please try again later.`, "error"); swal("Uh oh...", error, "error");
} else { } else {
swal.stopLoading(); swal.stopLoading();
swal.close(); swal.close();
@ -41,162 +39,36 @@ $("#delete-vm").click(function(){
}); });
} }
}); });
}
$("#delete-vm").click(function(){
const vmname = $(this).data('vmname');
const vmid = $(this).data('vmid')
confirmDialog(`/vm/${vmid}/delete`, `Are you sure you want to delete ${vmname}?`, "Delete", `${vmname} is now being deleted.`, `Unable to delete ${vmname}. Please try again later.`, '/')
}); });
$("#stop-vm").click(function(){ $("#stop-vm").click(function(){
const vmname = $(this).data('vmname'); const vmname = $(this).data('vmname');
swal({
title: `Are you sure you want to stop ${vmname}?`,
icon: "warning",
buttons: {
cancel: true,
delete: {
text: "Stop",
closeModal: false,
className: "swal-button--danger",
}
},
dangerMode: true,
})
.then((willStop) => {
if (willStop) {
const vmid = $(this).data('vmid') const vmid = $(this).data('vmid')
fetch(`/vm/${vmid}/power/stop`, { confirmDialog(`/vm/${vmid}/power/stop`, `Are you sure you want to stop ${vmname}?`, "Stop", `${vmname} is now stopping!`, `Unable to stop ${vmname}. Please try again later.`, `/vm/${vmid}`)
credentials: 'same-origin',
method: 'post'
}).then((response) => {
return swal(`${vmname} is now stopping!`, {
icon: "success",
});
}).then(() => {
window.location = `/vm/${vmid}`;
}).catch(err => {
if (err) {
swal("Uh oh...", `Unable to stop ${vmname}. Please try again later.`, "error");
} else {
swal.stopLoading();
swal.close();
}
});
}
});
}); });
$("#reset-vm").click(function(){ $("#reset-vm").click(function(){
const vmname = $(this).data('vmname'); const vmname = $(this).data('vmname');
swal({ const vmid = $(this).data('vmid')
title: `Are you sure you want to reset ${vmname}?`, confirmDialog(`/vm/${vmid}/power/reset`, `Are you sure you want to reset ${vmname}?`, "Reset", `${vmname} is now resetting!`, `Unable to reset ${vmname}. Please try again later.`, `/vm/${vmid}`)
icon: "warning",
buttons: {
cancel: true,
delete: {
text: "Reset",
closeModal: false,
className: "swal-button--danger",
}
},
dangerMode: true,
})
.then((willReset) => {
if (willReset) {
const vmid = $(this).data('vmid');
fetch(`/vm/${vmid}/power/reset`, {
credentials: 'same-origin',
method: 'post'
}).then((response) => {
return swal(`${vmname} is now resetting!`, {
icon: "success",
});
}).then(() => {
window.location = `/vm/${vmid}`;
}).catch(err => {
if (err) {
swal("Uh oh...", `Unable to reset ${vmname}. Please try again later.`, "error");
} else {
swal.stopLoading();
swal.close();
}
});
}
});
}); });
$("#shutdown-vm").click(function(){ $("#shutdown-vm").click(function(){
const vmname = $(this).data('vmname'); const vmname = $(this).data('vmname');
swal({ const vmid = $(this).data('vmid')
title: `Are you sure you want to shutdown ${vmname}?`, confirmDialog(`/vm/${vmid}/power/shutdown`, `Are you sure you want to shutdown ${vmname}?`, "Shutdown", `${vmname} is now shutting down!`, `Unable to shutdown ${vmname}. Please try again later.`, `/vm/${vmid}`)
icon: "warning",
buttons: {
cancel: true,
delete: {
text: "Shutdown",
closeModal: false,
className: "swal-button--danger",
}
},
dangerMode: true,
})
.then((willShutdown) => {
if (willShutdown) {
const vmid = $(this).data('vmid');
fetch(`/vm/${vmid}/power/shutdown`, {
credentials: 'same-origin',
method: 'post'
}).then((response) => {
return swal(`${vmname} is now shutting down!`, {
icon: "success",
});
}).then(() => {
window.location = `/vm/${vmid}`;
}).catch(err => {
if (err) {
swal("Uh oh...", `Unable to shutdown ${vmname}. Please try again later.`, "error");
} else {
swal.stopLoading();
swal.close();
}
});
}
});
}); });
$("#suspend-vm").click(function(){ $("#suspend-vm").click(function(){
const vmname = $(this).data('vmname'); const vmname = $(this).data('vmname');
swal({ const vmid = $(this).data('vmid')
title: `Are you sure you want to suspend ${vmname}?`, confirmDialog(`/vm/${vmid}/power/suspend`, `Are you sure you want to suspend ${vmname}?`, "Suspend", `${vmname} is now suspending!`, `Unable to suspend ${vmname}. Please try again later.`, `/vm/${vmid}`)
icon: "warning",
buttons: {
cancel: true,
delete: {
text: "Suspend",
closeModal: false,
className: "swal-button--danger",
}
},
dangerMode: true,
})
.then((willSuspend) => {
if (willSuspend) {
const vmid = $(this).data('vmid');
fetch(`/vm/${vmid}/power/suspend`, {
credentials: 'same-origin',
method: 'post'
}).then((response) => {
return swal(`${vmname} is now suspending!`, {
icon: "success",
});
}).then(() => {
window.location = `/vm/${vmid}`;
}).catch(err => {
if (err) {
swal("Uh oh...", `Unable to suspend ${vmname}. Please try again later.`, "error");
} else {
swal.stopLoading();
swal.close();
}
});
}
});
}); });
$("#start-vm").click(function(){ $("#start-vm").click(function(){

View file

@ -93,11 +93,10 @@ def process_expiring_vms_task():
expiring_vms.append([vm.id, vm.name, days]) expiring_vms.append([vm.id, vm.name, days])
if days <= 0: if days <= 0:
expired_vms.append([vm.id, vm.name, days]) expired_vms.append([vm.id, vm.name, days])
if days <= 0:
vm.stop() vm.stop()
elif days == -7: elif days <= -7:
print( print(
"Deleting {} ({}) as it has been a week since expiration.". "Deleting {} ({}) as it has been at least a week since expiration.".
format(vm.name, vm.id)) format(vm.name, vm.id))
send_stop_ssh_tunnel(vm.id) send_stop_ssh_tunnel(vm.id)
delete_vm_task(vm.id) delete_vm_task(vm.id)

View file

@ -21,7 +21,7 @@
</button> </button>
<div class="collapse navbar-collapse" id="navbarResponsive"> <div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav mr-auto"> <ul class="navbar-nav mr-auto">
{% if user.active %} {% if user.active or user.rtp %}
<li class="nav-item navbar-user dropdown"> <li class="nav-item navbar-user dropdown">
<a class="nav-link" href="/"> <a class="nav-link" href="/">
<i class="fas fa-th-list"></i> <i class="fas fa-th-list"></i>

View file

@ -1,12 +1,12 @@
flask flask
flask_pyoidc flask_pyoidc==1.3.0
git+https://github.com/merinos/proxmoxer.git@python3#egg=bad01313d9f32a239882195325b21767a25f72e0 proxmoxer
psycopg2-binary psycopg2-binary
sqlalchemy sqlalchemy
python-dateutil python-dateutil
csh_ldap==2.0.1 csh_ldap
rq rq
rq-scheduler==0.7.0 rq-scheduler
gunicorn gunicorn
raven raven
paramiko paramiko