mirror of
https://github.com/ComputerScienceHouse/proxstar.git
synced 2025-03-09 15:40:09 +00:00
Merge pull request #8 from com6056/expire-email-rtp-digest
set version pyoidc, clean up js, fix alumni rtp stuff
This commit is contained in:
commit
b658033d85
6 changed files with 34 additions and 163 deletions
|
@ -389,7 +389,7 @@ def boot_order(vmid):
|
|||
def create():
|
||||
user = User(session['userinfo']['preferred_username'])
|
||||
proxmox = connect_proxmox()
|
||||
if user.active:
|
||||
if user.active or user.rtp:
|
||||
if request.method == 'GET':
|
||||
isos = get_isos(proxmox, app.config['PROXMOX_ISO_STORAGE'])
|
||||
pools = get_pools(proxmox, db)
|
||||
|
|
|
@ -192,8 +192,8 @@ def delete_allowed_user(db, user):
|
|||
|
||||
def set_template_info(db, template_id, name, disk):
|
||||
if db.query(exists().where(Template.id == template_id, )).scalar():
|
||||
template = db.query(Template).filter(Template.id == template_id,
|
||||
).one()
|
||||
template = db.query(Template).filter(
|
||||
Template.id == template_id, ).one()
|
||||
template.name = name
|
||||
template.disk = disk
|
||||
db.commit()
|
||||
|
|
|
@ -4,36 +4,34 @@ $(document).ready(function(){
|
|||
$('[data-toggle="tooltip"]').tooltip();
|
||||
});
|
||||
|
||||
$("#delete-vm").click(function(){
|
||||
const vmname = $(this).data('vmname');
|
||||
function confirmDialog(url, confirm, confirmButton, complete, error, location) {
|
||||
swal({
|
||||
title: `Are you sure you want to delete ${vmname}?`,
|
||||
title: confirm,
|
||||
icon: "warning",
|
||||
buttons: {
|
||||
cancel: true,
|
||||
delete: {
|
||||
text: "Delete",
|
||||
action: {
|
||||
text: confirmButton,
|
||||
closeModal: false,
|
||||
className: "swal-button--danger",
|
||||
}
|
||||
},
|
||||
dangerMode: true,
|
||||
})
|
||||
.then((willDelete) => {
|
||||
if (willDelete) {
|
||||
const vmid = $(this).data('vmid');
|
||||
fetch(`/vm/${vmid}/delete`, {
|
||||
.then((willComplete) => {
|
||||
if (willComplete) {
|
||||
fetch(url, {
|
||||
credentials: 'same-origin',
|
||||
method: 'post'
|
||||
}).then((response) => {
|
||||
return swal(`${vmname} is now being deleted.`, {
|
||||
return swal(complete, {
|
||||
icon: "success",
|
||||
});
|
||||
}).then(() => {
|
||||
window.location = "/";
|
||||
window.location = location;
|
||||
}).catch(err => {
|
||||
if (err) {
|
||||
swal("Uh oh...", `Unable to delete ${vmname}. Please try again later.`, "error");
|
||||
swal("Uh oh...", error, "error");
|
||||
} else {
|
||||
swal.stopLoading();
|
||||
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(){
|
||||
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')
|
||||
fetch(`/vm/${vmid}/power/stop`, {
|
||||
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();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
const vmid = $(this).data('vmid')
|
||||
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}`)
|
||||
});
|
||||
|
||||
$("#reset-vm").click(function(){
|
||||
const vmname = $(this).data('vmname');
|
||||
swal({
|
||||
title: `Are you sure you want to reset ${vmname}?`,
|
||||
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();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
const vmid = $(this).data('vmid')
|
||||
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}`)
|
||||
});
|
||||
|
||||
$("#shutdown-vm").click(function(){
|
||||
const vmname = $(this).data('vmname');
|
||||
swal({
|
||||
title: `Are you sure you want to shutdown ${vmname}?`,
|
||||
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();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
const vmid = $(this).data('vmid')
|
||||
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}`)
|
||||
});
|
||||
|
||||
$("#suspend-vm").click(function(){
|
||||
const vmname = $(this).data('vmname');
|
||||
swal({
|
||||
title: `Are you sure you want to suspend ${vmname}?`,
|
||||
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();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
const vmid = $(this).data('vmid')
|
||||
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}`)
|
||||
});
|
||||
|
||||
$("#start-vm").click(function(){
|
||||
|
|
|
@ -93,11 +93,10 @@ def process_expiring_vms_task():
|
|||
expiring_vms.append([vm.id, vm.name, days])
|
||||
if days <= 0:
|
||||
expired_vms.append([vm.id, vm.name, days])
|
||||
if days <= 0:
|
||||
vm.stop()
|
||||
elif days == -7:
|
||||
elif days <= -7:
|
||||
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))
|
||||
send_stop_ssh_tunnel(vm.id)
|
||||
delete_vm_task(vm.id)
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarResponsive">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
{% if user.active %}
|
||||
{% if user.active or user.rtp %}
|
||||
<li class="nav-item navbar-user dropdown">
|
||||
<a class="nav-link" href="/">
|
||||
<i class="fas fa-th-list"></i>
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
flask
|
||||
flask_pyoidc
|
||||
git+https://github.com/merinos/proxmoxer.git@python3#egg=bad01313d9f32a239882195325b21767a25f72e0
|
||||
flask_pyoidc==1.3.0
|
||||
proxmoxer
|
||||
psycopg2-binary
|
||||
sqlalchemy
|
||||
python-dateutil
|
||||
csh_ldap==2.0.1
|
||||
csh_ldap
|
||||
rq
|
||||
rq-scheduler==0.7.0
|
||||
rq-scheduler
|
||||
gunicorn
|
||||
raven
|
||||
paramiko
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue