aboutsummaryrefslogtreecommitdiffstats
path: root/dashboard_api
diff options
context:
space:
mode:
authorParker Berberian <pberberian@iol.unh.edu>2018-10-24 15:12:32 -0400
committerParker Berberian <pberberian@iol.unh.edu>2018-11-07 10:32:56 -0500
commit7b15aed77c6675286fd75b8832af58c992717ef9 (patch)
treef4597f72433ce75ab46a1fd80f3635c987b38205 /dashboard_api
parentebc42347105caa2be52a8337372ae4793fe9182c (diff)
Rewrite Notification subsystem
In this commit: - delete a lot of really bad and / or unused code - redesign a much simpler Notification model - create and send notifications to the user's inbox on booking start & end - migrations - emails user when booking is ready and when it ends Not in this commit: - Creating notifications from lab messages - warning messages when a booking is about to end - creating "summary" notifications when e.g. a booking has been fulfilled by a lab Change-Id: I69b4dc36c3f2bce76d810106baadeef5a562cc7d Signed-off-by: Parker Berberian <pberberian@iol.unh.edu>
Diffstat (limited to 'dashboard_api')
-rw-r--r--dashboard_api/__init__.py8
-rw-r--r--dashboard_api/api.py91
2 files changed, 0 insertions, 99 deletions
diff --git a/dashboard_api/__init__.py b/dashboard_api/__init__.py
deleted file mode 100644
index ce1acf3..0000000
--- a/dashboard_api/__init__.py
+++ /dev/null
@@ -1,8 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 Max Breitenfeldt and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-############################################################################## \ No newline at end of file
diff --git a/dashboard_api/api.py b/dashboard_api/api.py
deleted file mode 100644
index d40e0aa..0000000
--- a/dashboard_api/api.py
+++ /dev/null
@@ -1,91 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 Max Breitenfeldt and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-
-import logging
-
-import requests
-
-URLS = {
- 'resources': '/api/resources/',
- 'servers': '/api/servers/',
- 'bookings': '/api/bookings',
- 'resource_status': '/api/resource_status/',
-}
-
-class DashboardAPI(object):
- def __init__(self, dashboard_url, api_token='', verbose=False):
- self._api_token = api_token
- self._verbose = verbose
- self._resources_url = dashboard_url + URLS['resources']
- self._servers_url = dashboard_url + URLS['servers']
- self._bookings_url = dashboard_url + URLS['bookings']
- self._resources_status_url = dashboard_url + URLS['resource_status']
- self._logger = logging.getLogger(__name__)
-
- def get_all_resources(self):
- return self._get_json(self._resources_url)
-
- def get_resource(self, id='', name='', url=''):
- if url != '':
- return self._get_json(url)[0]
- url = self._resources_url + self._url_parameter(id=id, name=name)
- return self._get_json(url)[0]
-
- def get_all_bookings(self):
- return self._get_json(self._bookings_url)
-
- def get_resource_bookings(self, resource_id):
- url = self._bookings_url + self._url_parameter(resource_id=resource_id)
- return self._get_json(url)
-
- def get_booking(self, id):
- url = self._bookings_url + self._url_parameter(id=id)
- return self._get_json(url)[0]
-
- def post_resource_status(self, resource_id, type, title, content):
- data = {
- 'resource': resource_id,
- 'type': type,
- 'title': title,
- 'content': content
- }
- return self._post_json(self._resources_status_url, data)
-
- def get_url(self, url):
- return self._get_json(url)
-
- def _url_parameter(self, **kwargs):
- res = ''
- prefix = '?'
- for key, val in kwargs.items():
- res += prefix + key + '=' + str(val)
- prefix = '&'
- return res
-
- def _get_json(self, url):
- try:
- response = requests.get(url)
- if self._verbose:
- print('Get JSON: ' + url)
- print(response.status_code, response.content)
- return response.json()
- except requests.exceptions.RequestException as e:
- self._logger.exception(e)
- except ValueError as e:
- self._logger.exception(e)
-
- def _post_json(self, url, json):
- if self._api_token == '':
- raise Exception('Need api token to POST data.')
- response = requests.post(url, json, headers={'Authorization': 'Token ' + self._api_token})
- if self._verbose:
- print('Post JSON: ' + url)
- print(response.status_code, response.content)
- return response.status_code