var cameraId = $('#cameraSelect').val();
ajax('POST', basePath + 'config/' + cameraId + '/test/', data, function (data) {
+ /* clear the authorization key as it's definitely not usable anymore;
+ * the credentials must have already been obtained and saved */
+ $('#uploadAuthorizationKeyEntry').val('');
+
+ /* also clear it from the pending configs dict */
+ Object.keys(pushConfigs).forEach(function (id) {
+ delete pushConfigs[id].upload_authorization_key;
+ });
+
hideModalDialog(); /* progress */
if (data.error) {
showErrorMessage('Accessing the upload service failed: ' + data.error + '!');
def test_access(self):
try:
+ self._credentials = None # invalidate credentials
self._folder_ids = {}
self._get_folder_id()
return True
if 'location' in data:
self._location = data['location']
self._folder_ids = {}
- if 'credentials' in data:
- self._credentials = data['credentials']
if 'authorization_key' in data:
self._authorization_key = data['authorization_key']
+ self._credentials = None
+ if 'credentials' in data:
+ self._credentials = data['credentials']
def _get_folder_id(self, path=''):
now = time.time()
return self.AUTH_URL + '?' + urllib.urlencode(query)
def test_access(self):
+ self._credentials = None # invalidate credentials
+
body = {
'path': self._clean_location(),
'recursive': False,
def load(self, data):
if 'location' in data:
self._location = data['location']
- if 'credentials' in data:
- self._credentials = data['credentials']
if 'authorization_key' in data:
self._authorization_key = data['authorization_key']
+ self._credentials = None
+ if 'credentials' in data:
+ self._credentials = data['credentials']
def _clean_location(self):
location = self._location
if _services is None:
_services = _load()
+
+ camera_id = str(camera_id)
- service = _services.get(str(camera_id), {}).get(service_name)
+ service = _services.get(camera_id, {}).get(service_name)
if service is None:
cls = UploadService.get_service_classes().get(service_name)
if cls:
data = {}
for camera_id, camera_services in services.iteritems():
for name, service in camera_services.iteritems():
- data.setdefault(camera_id, {})[name] = service.dump()
+ data.setdefault(str(camera_id), {})[name] = service.dump()
try:
json.dump(data, file, sort_keys=True, indent=4)
file.close()
+def invalidate():
+ global _services
+
+ _services = None
+
+
def upload_media_file(camera_id, target_dir, service_name, filename):
service = get(camera_id, service_name)
if not service:
service.upload_file(target_dir, filename)
except Exception as e:
- logging.error('failed to upload file "%s" with service %s: %s' % (filename, service, e))
+ logging.error('failed to upload file "%s" with service %s: %s' % (filename, service, e), exc_info=True)