Skip to content

Commit

Permalink
Merge pull request #14 from uw-it-aca/feature/prometheus
Browse files Browse the repository at this point in the history
Feature/prometheus
  • Loading branch information
mikeseibel authored Jun 25, 2024
2 parents 0af9f8f + 10698eb commit 0b43b3f
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 17 deletions.
5 changes: 3 additions & 2 deletions panopto_client/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,9 @@ def _request(self, methodName, params={}):
return response
except WebFault as err:
self._log.exception(err)
raise PanoptoAPIException("Cannot connect to '{}': {}".format(
self._wsdl, err))
raise PanoptoAPIException("{}".format(
err.fault.faultstring if (
hasattr(err.fault, 'faultstring')) else err))
except Exception as err:
self._log.error('Error: ({}) {}'.format(
err, str(sys.exc_info()[0])))
Expand Down
40 changes: 26 additions & 14 deletions panopto_client/session.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,27 @@ def __init__(self):
port='BasicHttpBinding_ISessionManagement')

def getFoldersList(
self, search_query='', sort_by='Name', sort_increasing='true'):
return self._folder_search('GetFoldersList', search_query,
sort_by, sort_increasing)
self, search_query='', parent_folder_id=None,
sort_by='Name', sort_increasing='true'):
return self._folder_search(
'GetFoldersList',
search_query, parent_folder_id, sort_by, sort_increasing)

def getFoldersWithExternalContextList(
self, search_query='', sort_by='Name', sort_increasing='true'):
return self._folder_search('GetFoldersWithExternalContextList',
search_query, sort_by, sort_increasing)
self, search_query='', parent_folder_id=None,
sort_by='Name', sort_increasing='true'):
return self._folder_search(
'GetFoldersWithExternalContextList',
search_query, parent_folder_id, sort_by, sort_increasing)

def _folder_search(
self, method, search_query='', sort_by='Name',
sort_increasing='true'):
self, method, search_query='', parent_folder_id=None,
sort_by='Name', sort_increasing='true'):
request = self._instance('ns1:ListFoldersRequest')
request.ParentFolderId = None
request.ParentFolderId = parent_folder_id
request.PublicOnly = 'false'
request.SortBy = self._instance('ns1:FolderSortField')
request.SortBy = sort_by,
request.SortBy = sort_by
request.SortIncreasing = sort_increasing

result = []
Expand All @@ -56,7 +60,9 @@ def _folder_search(
break

if response.Results:
for f in response.Results.Folder:
result_array = method \
.replace('GetFolders', 'Folder').replace('List', '')
for f in getattr(response.Results, result_array, []):
result.append(f)

if len(result) >= response.TotalNumberResults:
Expand Down Expand Up @@ -84,19 +90,25 @@ def getAllFoldersByExternalId(self, folder_external_ids,
ns=self.param_ns, params=provider_names),
})

def getFoldersById(self, folder_ids):
return self._request('GetFoldersById', {
'auth': self.authentication_info(ns=self.auth_ns),
'folderIds': self.guid_list(ns=self.guid_ns, guids=folder_ids),
})

def getFoldersByExternalId(self, folder_external_ids):
return self._request('GetFoldersByExternalId', {
'auth': self.authentication_info(ns=self.auth_ns),
'folderExternalIds': self.parameter_list(
ns=self.param_ns, params=folder_external_ids),
})

def addFolder(self, folder_name):
def addFolder(self, folder_name, parent_folder_id=None, is_public=False):
return self._request('AddFolder', {
'auth': self.authentication_info(ns=self.auth_ns),
'name': folder_name,
'parentFolder': None,
'isPublic': 'false'
'parentFolder': parent_folder_id,
'isPublic': is_public
})

def updateFolderName(self, folder_id, name):
Expand Down
2 changes: 1 addition & 1 deletion panopto_client/tests/test_session.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ def test_addFolder(self, mock_request, mock_instance):
['ns1:AuthenticationInfo'])
mock_request.assert_called_with('AddFolder', {
'auth': mock.sentinel.instance, 'name': 'test-folder-name',
'parentFolder': None, 'isPublic': 'false'})
'parentFolder': None, 'isPublic': False})

def test_updateFolderName(self, mock_request, mock_instance):
client = SessionManagement()
Expand Down

0 comments on commit 0b43b3f

Please sign in to comment.