Skip to content

Commit b658033

Browse files
authored
Merge pull request #8 from com6056/expire-email-rtp-digest
set version pyoidc, clean up js, fix alumni rtp stuff
2 parents 0710367 + 820a1c9 commit b658033

File tree

6 files changed

+34
-163
lines changed

6 files changed

+34
-163
lines changed

proxstar/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ def boot_order(vmid):
389389
def create():
390390
user = User(session['userinfo']['preferred_username'])
391391
proxmox = connect_proxmox()
392-
if user.active:
392+
if user.active or user.rtp:
393393
if request.method == 'GET':
394394
isos = get_isos(proxmox, app.config['PROXMOX_ISO_STORAGE'])
395395
pools = get_pools(proxmox, db)

proxstar/db.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,8 @@ def delete_allowed_user(db, user):
192192

193193
def set_template_info(db, template_id, name, disk):
194194
if db.query(exists().where(Template.id == template_id, )).scalar():
195-
template = db.query(Template).filter(Template.id == template_id,
196-
).one()
195+
template = db.query(Template).filter(
196+
Template.id == template_id, ).one()
197197
template.name = name
198198
template.disk = disk
199199
db.commit()

proxstar/static/js/script.js

Lines changed: 24 additions & 152 deletions
Original file line numberDiff line numberDiff line change
@@ -4,199 +4,71 @@ $(document).ready(function(){
44
$('[data-toggle="tooltip"]').tooltip();
55
});
66

7-
$("#delete-vm").click(function(){
8-
const vmname = $(this).data('vmname');
7+
function confirmDialog(url, confirm, confirmButton, complete, error, location) {
98
swal({
10-
title: `Are you sure you want to delete ${vmname}?`,
9+
title: confirm,
1110
icon: "warning",
1211
buttons: {
1312
cancel: true,
14-
delete: {
15-
text: "Delete",
13+
action: {
14+
text: confirmButton,
1615
closeModal: false,
1716
className: "swal-button--danger",
1817
}
1918
},
2019
dangerMode: true,
2120
})
22-
.then((willDelete) => {
23-
if (willDelete) {
24-
const vmid = $(this).data('vmid');
25-
fetch(`/vm/${vmid}/delete`, {
21+
.then((willComplete) => {
22+
if (willComplete) {
23+
fetch(url, {
2624
credentials: 'same-origin',
2725
method: 'post'
2826
}).then((response) => {
29-
return swal(`${vmname} is now being deleted.`, {
27+
return swal(complete, {
3028
icon: "success",
3129
});
3230
}).then(() => {
33-
window.location = "/";
31+
window.location = location;
3432
}).catch(err => {
3533
if (err) {
36-
swal("Uh oh...", `Unable to delete ${vmname}. Please try again later.`, "error");
34+
swal("Uh oh...", error, "error");
3735
} else {
3836
swal.stopLoading();
3937
swal.close();
4038
}
4139
});
4240
}
4341
});
42+
}
43+
44+
$("#delete-vm").click(function(){
45+
const vmname = $(this).data('vmname');
46+
const vmid = $(this).data('vmid')
47+
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.`, '/')
4448
});
4549

4650
$("#stop-vm").click(function(){
4751
const vmname = $(this).data('vmname');
48-
swal({
49-
title: `Are you sure you want to stop ${vmname}?`,
50-
icon: "warning",
51-
buttons: {
52-
cancel: true,
53-
delete: {
54-
text: "Stop",
55-
closeModal: false,
56-
className: "swal-button--danger",
57-
}
58-
},
59-
dangerMode: true,
60-
})
61-
.then((willStop) => {
62-
if (willStop) {
63-
const vmid = $(this).data('vmid')
64-
fetch(`/vm/${vmid}/power/stop`, {
65-
credentials: 'same-origin',
66-
method: 'post'
67-
}).then((response) => {
68-
return swal(`${vmname} is now stopping!`, {
69-
icon: "success",
70-
});
71-
}).then(() => {
72-
window.location = `/vm/${vmid}`;
73-
}).catch(err => {
74-
if (err) {
75-
swal("Uh oh...", `Unable to stop ${vmname}. Please try again later.`, "error");
76-
} else {
77-
swal.stopLoading();
78-
swal.close();
79-
}
80-
});
81-
}
82-
});
52+
const vmid = $(this).data('vmid')
53+
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}`)
8354
});
8455

8556
$("#reset-vm").click(function(){
8657
const vmname = $(this).data('vmname');
87-
swal({
88-
title: `Are you sure you want to reset ${vmname}?`,
89-
icon: "warning",
90-
buttons: {
91-
cancel: true,
92-
delete: {
93-
text: "Reset",
94-
closeModal: false,
95-
className: "swal-button--danger",
96-
}
97-
},
98-
dangerMode: true,
99-
})
100-
.then((willReset) => {
101-
if (willReset) {
102-
const vmid = $(this).data('vmid');
103-
fetch(`/vm/${vmid}/power/reset`, {
104-
credentials: 'same-origin',
105-
method: 'post'
106-
}).then((response) => {
107-
return swal(`${vmname} is now resetting!`, {
108-
icon: "success",
109-
});
110-
}).then(() => {
111-
window.location = `/vm/${vmid}`;
112-
}).catch(err => {
113-
if (err) {
114-
swal("Uh oh...", `Unable to reset ${vmname}. Please try again later.`, "error");
115-
} else {
116-
swal.stopLoading();
117-
swal.close();
118-
}
119-
});
120-
}
121-
});
58+
const vmid = $(this).data('vmid')
59+
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}`)
12260
});
12361

12462
$("#shutdown-vm").click(function(){
12563
const vmname = $(this).data('vmname');
126-
swal({
127-
title: `Are you sure you want to shutdown ${vmname}?`,
128-
icon: "warning",
129-
buttons: {
130-
cancel: true,
131-
delete: {
132-
text: "Shutdown",
133-
closeModal: false,
134-
className: "swal-button--danger",
135-
}
136-
},
137-
dangerMode: true,
138-
})
139-
.then((willShutdown) => {
140-
if (willShutdown) {
141-
const vmid = $(this).data('vmid');
142-
fetch(`/vm/${vmid}/power/shutdown`, {
143-
credentials: 'same-origin',
144-
method: 'post'
145-
}).then((response) => {
146-
return swal(`${vmname} is now shutting down!`, {
147-
icon: "success",
148-
});
149-
}).then(() => {
150-
window.location = `/vm/${vmid}`;
151-
}).catch(err => {
152-
if (err) {
153-
swal("Uh oh...", `Unable to shutdown ${vmname}. Please try again later.`, "error");
154-
} else {
155-
swal.stopLoading();
156-
swal.close();
157-
}
158-
});
159-
}
160-
});
64+
const vmid = $(this).data('vmid')
65+
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}`)
16166
});
16267

16368
$("#suspend-vm").click(function(){
16469
const vmname = $(this).data('vmname');
165-
swal({
166-
title: `Are you sure you want to suspend ${vmname}?`,
167-
icon: "warning",
168-
buttons: {
169-
cancel: true,
170-
delete: {
171-
text: "Suspend",
172-
closeModal: false,
173-
className: "swal-button--danger",
174-
}
175-
},
176-
dangerMode: true,
177-
})
178-
.then((willSuspend) => {
179-
if (willSuspend) {
180-
const vmid = $(this).data('vmid');
181-
fetch(`/vm/${vmid}/power/suspend`, {
182-
credentials: 'same-origin',
183-
method: 'post'
184-
}).then((response) => {
185-
return swal(`${vmname} is now suspending!`, {
186-
icon: "success",
187-
});
188-
}).then(() => {
189-
window.location = `/vm/${vmid}`;
190-
}).catch(err => {
191-
if (err) {
192-
swal("Uh oh...", `Unable to suspend ${vmname}. Please try again later.`, "error");
193-
} else {
194-
swal.stopLoading();
195-
swal.close();
196-
}
197-
});
198-
}
199-
});
70+
const vmid = $(this).data('vmid')
71+
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}`)
20072
});
20173

20274
$("#start-vm").click(function(){

proxstar/tasks.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,10 @@ def process_expiring_vms_task():
9393
expiring_vms.append([vm.id, vm.name, days])
9494
if days <= 0:
9595
expired_vms.append([vm.id, vm.name, days])
96-
if days <= 0:
9796
vm.stop()
98-
elif days == -7:
97+
elif days <= -7:
9998
print(
100-
"Deleting {} ({}) as it has been a week since expiration.".
99+
"Deleting {} ({}) as it has been at least a week since expiration.".
101100
format(vm.name, vm.id))
102101
send_stop_ssh_tunnel(vm.id)
103102
delete_vm_task(vm.id)

proxstar/templates/base.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
</button>
2222
<div class="collapse navbar-collapse" id="navbarResponsive">
2323
<ul class="navbar-nav mr-auto">
24-
{% if user.active %}
24+
{% if user.active or user.rtp %}
2525
<li class="nav-item navbar-user dropdown">
2626
<a class="nav-link" href="/">
2727
<i class="fas fa-th-list"></i>

requirements.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
flask
2-
flask_pyoidc
3-
git+https://github.com/merinos/proxmoxer.git@python3#egg=bad01313d9f32a239882195325b21767a25f72e0
2+
flask_pyoidc==1.3.0
3+
proxmoxer
44
psycopg2-binary
55
sqlalchemy
66
python-dateutil
7-
csh_ldap==2.0.1
7+
csh_ldap
88
rq
9-
rq-scheduler==0.7.0
9+
rq-scheduler
1010
gunicorn
1111
raven
1212
paramiko

0 commit comments

Comments
 (0)