TODO

  • DONE: don't use root for uwsgi
  • DONE: send booking update mail
  • DONE: get floating ip of the jumphost and include it in booking update mail
  • DONE: update booking heat_stack_name, engine_version, stack_version, scenario_version, scenario_deploy_log_url
  • DONE: enable authentication for nolabs/api endpoints
  • DONE: enable password length validation in registration
  • DONE: do not use ENUM for user roles
  • DONE: return role in api/users
  • DONE: enable functional users to update booking details via api
  • DONE: limit max booking to 1 - check if there is an active booking and do not allow booking of new one
  • DONE: make booking page colorful based on booking status
  • DONE: routes and pages
  • DONE: use flask-markdown
  • DONE: update welcome mail and include link to confirm mail address and more info
  • DONE: create separate jenkins jobs for test and production
  • DONE: use booking_status table
  • DONE: fix user_last_seen -> last_logged_in
  • DONE: hide statistics
  • DONE: ensure columns have the right properties in DB
  • DONE: send new user registration mails to admins
  • DONE: check why newbooking is allowed if ssh key deleted after it gets added the first time
  • introduce userstatus table and relationship
  • check why error flashed after the first ssh key registration
  • configure jenkins jobs for handle and delete booking
  • document functions inline
  • introduce unit tests
  • send failure mails in postbuild job to admins
  • move NOLABS_ADMINS to .env
  • get stacks and scenarios from DB dynamically
  • use threading for sending mails
  • include labs@lists.nordix.org in confirmation mail
  • add checkbox for accepting Terms and Conditions
  • look into adding javascript for dynamic stack/scenario list using Bootstrap components https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xx-some-javascript-magic
  • look into python rq and redis for long running background tasks https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xxii-background-jobs
  • enable prolonging a booking