Module cvpysdk.datacube.handler
Main file for performing handler operations on a datasource.
Handlers and Handler are 2 classes defined in this file.
Handlers: Class for representing all the Handlers associated with the datasource
Handler: Class for a single Handler of the datasource
Handlers
init() – initialize object of Handlers class associated with commcell
str() – returns all the handlers associated with the commcell
repr() – returns the string representing instance of the Handlers class
_get_handlers() – gets all the handlers associated with the commcell
has_handler() – checks if a handler exists with the given name or not
get_properties() – gets the properties of the given handler
add() – adds a new handler to the datasource
refresh() – refresh the handlers associated with the datasource
get() – gets the object for the given handler name
delete() – deletes the given handler name
Handler
init() – Initialize object for Handler
get_handler_data() – Execute the handler
share() – Share the handler with user or usergroup
Expand source code Browse git
# -*- coding: utf-8 -*-
# --------------------------------------------------------------------------
# Copyright Commvault Systems, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# --------------------------------------------------------------------------
"""Main file for performing handler operations on a datasource.
Handlers and Handler are 2 classes defined in this file.
Handlers: Class for representing all the Handlers associated with the datasource
Handler: Class for a single Handler of the datasource
Handlers:
__init__() -- initialize object of Handlers class associated with commcell
__str__() -- returns all the handlers associated with the commcell
__repr__() -- returns the string representing instance of the Handlers class
_get_handlers() -- gets all the handlers associated with the commcell
has_handler() -- checks if a handler exists with the given name or not
get_properties() -- gets the properties of the given handler
add() -- adds a new handler to the datasource
refresh() -- refresh the handlers associated with the datasource
get() -- gets the object for the given handler name
delete() -- deletes the given handler name
Handler:
__init__() -- Initialize object for Handler
get_handler_data() -- Execute the handler
share() -- Share the handler with user or usergroup
"""
from __future__ import absolute_import
from __future__ import unicode_literals
from ..exception import SDKException
class Handlers(object):
"""Class for representing all the handlers associated with the datasource."""
def __init__(self, datasource_object):
"""Initialize object of the Handlers class.
Args:
_datasource_object (object) -- instance of the datastore class
Returns:
object - instance of the Handlers class
"""
self._datasource_object = datasource_object
self.commcell_obj = self._datasource_object._commcell_object
self._create_handler = self.commcell_obj._services['CREATE_HANDLER']
self._get_handler = self.commcell_obj._services['GET_HANDLERS'] % (
self._datasource_object.datasource_id
)
self._handlers = None
self.refresh()
def __str__(self):
"""Representation string consisting of all handlers of the datasource.
Returns:
str - string of all the handlers associated with the datasource
"""
representation_string = '{:^5}\t{:^20}\n\n'.format('S. No.', 'Handler')
for index, handler in enumerate(self._handlers):
sub_str = '{:^5}\t{:20}\n'.format(index + 1, handler)
representation_string += sub_str
return representation_string.strip()
def __repr__(self):
"""Representation string for the instance of the Handlers class."""
return "Handlers class instance for Datasource: '{0}'".format(
self._datasource_object.datasource_name
)
def _get_handlers(self):
"""Gets all the handlers associated with the datasource
Returns:
dict - consists of all handlers in the datasource
{
"handler1_name": dict of handler1 properties,
"handler2_name": dict of handler2 properties
}
Raises:
SDKException:
if response is empty
if response is not success
"""
flag, response = self._datasource_object._commcell_object._cvpysdk_object.make_request(
'GET', self._get_handler)
if flag:
if response.json() and 'handlerInfos' in response.json():
handlers_dict = {}
for dictionary in response.json()['handlerInfos']:
temp_name = dictionary['handlerName']
handlers_dict[temp_name] = dictionary
return handlers_dict
raise SDKException('Response', '102')
response_string = self._datasource_object._commcell_object._update_response_(
response.text)
raise SDKException('Response', '101', response_string)
def has_handler(self, handler_name):
"""Checks if a handler exists in the datasource with the input handler name.
Args:
handler_name (str) -- name of the handler
Returns:
bool - boolean output whether the handler exists in the commcell or not
Raises:
SDKException:
if type of the handler name argument is not string
"""
if not isinstance(handler_name, str):
raise SDKException('Datacube', '101')
return self._handlers and handler_name.lower() in map(str.lower, self._handlers)
def get_properties(self, handler_name):
"""Returns a handler object of the specified handler name.
Args:
handler_name (str) -- name of the handler
Returns:
dict - properties for the given handler name
"""
return self._handlers[handler_name]
def get(self, handler_name):
"""Returns a handler object of the specified handler name.
Args:
handler_name (str) -- name of the handler
Returns:
obj -- Object of Handler class
"""
if not isinstance(handler_name, str):
raise SDKException('Datacube', '101')
if self.has_handler(handler_name):
handler_id = self.get_properties(handler_name)['handlerId']
return Handler(self._datasource_object, handler_name, handler_id)
raise SDKException('Datacube', '102', "Unable to get handler class object")
def delete(self, handler_name):
""" deletes the handler associated with this handler object
Args:
handler_name (str) -- Name of the handler which needs to be deleted
Returns:
None
Raises:
SDKExpception:
if response is empty
if response is not success
"""
handler_id = self.get(handler_name).handler_id
self._delete_handler = self.commcell_obj._services['DELETE_HANDLER'] % (
handler_id)
flag, response = self.commcell_obj._cvpysdk_object.make_request(
'POST', self._delete_handler)
if flag:
if 'errorCode' in response.json() and response.json()['errorCode'] != 0:
error_message = response.json()['errLogMessage']
o_str = 'Failed to Delete handler on datasource\nError: "{0}"'.format(error_message)
raise SDKException('Datacube', '102', o_str)
elif 'errorCode' in response.json() and response.json()['errorCode'] == 0:
return
else:
raise SDKException('Datacube', '102', "Empty Response with no errorCode")
raise SDKException('Response', '101', response.text)
def add(self,
handler_name,
search_query,
filter_query=None,
facet_field=None,
facet_query=None,
rows=10,
response_type="json",
sort_column=[]):
"""Adds a new handler to the commcell.
Args:
handler_name (str) -- name of the handler to add to the datastore
search_query (list) -- list of keywords on which the search is performed.
filter_query (list) -- list of conditional queries which needs to be performed
when the data is retrieved
facet_field (list) -- list of fields to be faceted.
facet_query (list) -- list of conditional queries for which the facet count
should be retrieved
rows (int) -- list of keywords on which the search is performed.
response_type (str) -- format in which search results are retrieved.
default: json
Supported Types:
json
csv
xml
sort_column (list) -- list of column name to be sorted
Raises:
SDKException:
if type of the handler name argument is not string
if failed to delete handler
if response is empty
if response is not success
if no handler exists with the given name
"""
request_json = {
"dataSourceId": self._datasource_object.datasource_id,
"handlerName": handler_name,
"handlerInfo": {
"defaultParams": {
"q": search_query,
"fq": filter_query,
"sort": sort_column,
"facet": [
"true" if facet_field or facet_query else "false"
],
"facet.field": facet_field,
"facet.query": facet_query,
"rows": [rows],
"wt": [response_type]
},
"appendParams": {},
"rawDefaultParams": [],
"rawAppendParams": [],
"rawInvariantParams": [],
"alwaysDecode": "true"
}
}
flag, response = self.commcell_obj._cvpysdk_object.make_request(
'POST', self._create_handler, request_json
)
if flag:
if response.json() and 'error' in response.json():
if(response.json()['error'] == 'None' or response.json()['error'] is None):
self.refresh() # reload new list.
return
error_code = response.json()['error']['errorCode']
if error_code == 0:
self.refresh() # reload new list.
return
error_message = response.json()['error']['errLogMessage']
o_str = 'Failed to create handler\nError: "{0}"'.format(error_message)
raise SDKException('Response', '102', o_str)
raise SDKException('Response', '102')
response_string = self.commcell_obj._update_response_(
response.text)
raise SDKException('Response', '101', response_string)
def refresh(self):
"""Refresh the handlers associated with the Datasource."""
self._handlers = self._get_handlers()
class Handler(object):
"""Class for performing operations on a single Handler"""
def __init__(self, datasource_object, handler_name, handler_id=None):
"""Initialize an object of the Handler class.
Args:
datasource_object (object) -- instance of the Datacube class
handler_name (str) -- name of the Handler
handler_id (int) -- Id of the Handler. Default = None
Returns:
object - instance of the Handler class
"""
self._datasource_object = datasource_object
self._handler_name = handler_name
if handler_id is None:
self._handler_id = self._get_handler_id(handler_name)
else:
self._handler_id = handler_id
self.commcell_obj = self._datasource_object._commcell_object
self._share_handler = self.commcell_obj._services['SHARE_HANDLER']
@property
def handler_id(self):
"""Returns the value of the handler id attribute."""
return self._handler_id
def _get_handler_id(self, handler_name):
""" Get handler id for given handler name
Args:
handler_name (str) -- Name of the Handler
Returns:
int -- Handler id
Raises:
SDKExpception:
if response is empty
if response is not success
"""
handlers = self.commcell_obj.Datacube.datasources.ds_handlers
return handlers.get_properties(handler_name=handler_name)['handlerId']
def get_handler_data(self, handler_filter=""):
""" Executes handler for fetching data
Args:
handler_filter (str) -- Filter which needs to applied for handler execution
Returns:
dict -- Dictionary of values fetched from handler execution
Raises:
SDKExpception:
if response is empty
if response is not success
if error in fetching handler data
"""
if not isinstance(handler_filter, str):
raise SDKException('Datacube', '101')
self._execute_handler = self.commcell_obj._services['EXECUTE_HANDLER'] % (
self.handler_id, self._handler_name, handler_filter
)
flag, response = self.commcell_obj._cvpysdk_object.make_request(
'GET', self._execute_handler)
if flag:
if response.json() and 'response' in response.json():
return response.json()['response']
if 'error' in response.json():
error_message = response.json()['error']['errLogMessage']
o_str = 'Failed to execute handler on datasource\nError: "{0}"'.format(error_message)
raise SDKException('Datacube', '102', o_str)
raise SDKException('Datacube', '102', "No response object in Json")
raise SDKException('Response', '101', response.text)
def share(self, permission_list, operation_type, user_id, user_name, user_type):
""" Share handler with user/usergroup
Args:
permission_list (list) -- List of permission
operation_type (int) -- Operation type (2-add / 3- delete)
user_id (int) -- User id of share user
user_name (str) -- Share user name
user_type (int) -- Share user type (Ex : 13- User)
Returns:
None
Raises:
SDKExpception:
if response is empty
if response is not success
if failed to share handler with User/Usergroup
"""
category_permission_list = []
for permission in permission_list:
category_permission_list.append({'permissionId': permission, '_type_': 122})
request_json = {
"entityAssociated": {
"entity": [
{
"entityType": 157,
"_type_": 150,
"entityId": self.handler_id
}
]
},
"securityAssociations": {
"processHiddenPermission": 1,
"associationsOperationType": operation_type,
"associations": [
{
"userOrGroup": [
{
"userId": user_id,
"_type_": user_type,
"userName": user_name
}
],
"properties": {
"categoryPermission": {
"categoriesPermissionList": category_permission_list
}
}
}
]
}
}
flag, response = self.commcell_obj._cvpysdk_object.make_request(
'POST', self._share_handler, request_json)
if flag:
if 'response' in response.json():
resp = response.json()['response']
resp = resp[0]
if resp.get('errorCode') != 0:
error_message = resp['errorString']
o_str = 'Failed to share handler on datasource\nError: "{0}"'.format(error_message)
raise SDKException('Datacube', '102', o_str)
return response.json()['response']
raise SDKException('Datacube', '102', "Empty Response")
raise SDKException('Response', '101', response.text)
Classes
class Handler (datasource_object, handler_name, handler_id=None)
-
Class for performing operations on a single Handler
Initialize an object of the Handler class.
Args
datasource_object (object) – instance of the Datacube class
handler_name (str) – name of the Handler
handler_id (int) – Id of the Handler. Default = None
Returns
object - instance of the Handler class
Expand source code Browse git
class Handler(object): """Class for performing operations on a single Handler""" def __init__(self, datasource_object, handler_name, handler_id=None): """Initialize an object of the Handler class. Args: datasource_object (object) -- instance of the Datacube class handler_name (str) -- name of the Handler handler_id (int) -- Id of the Handler. Default = None Returns: object - instance of the Handler class """ self._datasource_object = datasource_object self._handler_name = handler_name if handler_id is None: self._handler_id = self._get_handler_id(handler_name) else: self._handler_id = handler_id self.commcell_obj = self._datasource_object._commcell_object self._share_handler = self.commcell_obj._services['SHARE_HANDLER'] @property def handler_id(self): """Returns the value of the handler id attribute.""" return self._handler_id def _get_handler_id(self, handler_name): """ Get handler id for given handler name Args: handler_name (str) -- Name of the Handler Returns: int -- Handler id Raises: SDKExpception: if response is empty if response is not success """ handlers = self.commcell_obj.Datacube.datasources.ds_handlers return handlers.get_properties(handler_name=handler_name)['handlerId'] def get_handler_data(self, handler_filter=""): """ Executes handler for fetching data Args: handler_filter (str) -- Filter which needs to applied for handler execution Returns: dict -- Dictionary of values fetched from handler execution Raises: SDKExpception: if response is empty if response is not success if error in fetching handler data """ if not isinstance(handler_filter, str): raise SDKException('Datacube', '101') self._execute_handler = self.commcell_obj._services['EXECUTE_HANDLER'] % ( self.handler_id, self._handler_name, handler_filter ) flag, response = self.commcell_obj._cvpysdk_object.make_request( 'GET', self._execute_handler) if flag: if response.json() and 'response' in response.json(): return response.json()['response'] if 'error' in response.json(): error_message = response.json()['error']['errLogMessage'] o_str = 'Failed to execute handler on datasource\nError: "{0}"'.format(error_message) raise SDKException('Datacube', '102', o_str) raise SDKException('Datacube', '102', "No response object in Json") raise SDKException('Response', '101', response.text) def share(self, permission_list, operation_type, user_id, user_name, user_type): """ Share handler with user/usergroup Args: permission_list (list) -- List of permission operation_type (int) -- Operation type (2-add / 3- delete) user_id (int) -- User id of share user user_name (str) -- Share user name user_type (int) -- Share user type (Ex : 13- User) Returns: None Raises: SDKExpception: if response is empty if response is not success if failed to share handler with User/Usergroup """ category_permission_list = [] for permission in permission_list: category_permission_list.append({'permissionId': permission, '_type_': 122}) request_json = { "entityAssociated": { "entity": [ { "entityType": 157, "_type_": 150, "entityId": self.handler_id } ] }, "securityAssociations": { "processHiddenPermission": 1, "associationsOperationType": operation_type, "associations": [ { "userOrGroup": [ { "userId": user_id, "_type_": user_type, "userName": user_name } ], "properties": { "categoryPermission": { "categoriesPermissionList": category_permission_list } } } ] } } flag, response = self.commcell_obj._cvpysdk_object.make_request( 'POST', self._share_handler, request_json) if flag: if 'response' in response.json(): resp = response.json()['response'] resp = resp[0] if resp.get('errorCode') != 0: error_message = resp['errorString'] o_str = 'Failed to share handler on datasource\nError: "{0}"'.format(error_message) raise SDKException('Datacube', '102', o_str) return response.json()['response'] raise SDKException('Datacube', '102', "Empty Response") raise SDKException('Response', '101', response.text)
Instance variables
var handler_id
-
Returns the value of the handler id attribute.
Expand source code Browse git
@property def handler_id(self): """Returns the value of the handler id attribute.""" return self._handler_id
Methods
def get_handler_data(self, handler_filter='')
-
Executes handler for fetching data
Args
handler_filter (str) – Filter which needs to applied for handler execution
Returns
dict – Dictionary of values fetched from handler execution
Raises
SDKExpception:
if response is empty if response is not success if error in fetching handler data
Expand source code Browse git
def get_handler_data(self, handler_filter=""): """ Executes handler for fetching data Args: handler_filter (str) -- Filter which needs to applied for handler execution Returns: dict -- Dictionary of values fetched from handler execution Raises: SDKExpception: if response is empty if response is not success if error in fetching handler data """ if not isinstance(handler_filter, str): raise SDKException('Datacube', '101') self._execute_handler = self.commcell_obj._services['EXECUTE_HANDLER'] % ( self.handler_id, self._handler_name, handler_filter ) flag, response = self.commcell_obj._cvpysdk_object.make_request( 'GET', self._execute_handler) if flag: if response.json() and 'response' in response.json(): return response.json()['response'] if 'error' in response.json(): error_message = response.json()['error']['errLogMessage'] o_str = 'Failed to execute handler on datasource\nError: "{0}"'.format(error_message) raise SDKException('Datacube', '102', o_str) raise SDKException('Datacube', '102', "No response object in Json") raise SDKException('Response', '101', response.text)
-
Share handler with user/usergroup
Args
permission_list (list) – List of permission
operation_type (int) – Operation type (2-add / 3- delete)
user_id (int) – User id of share user
user_name (str) – Share user name
user_type (int) – Share user type (Ex : 13- User)
Returns
None
Raises
SDKExpception:
if response is empty
if response is not success
if failed to share handler with User/Usergroup
Expand source code Browse git
def share(self, permission_list, operation_type, user_id, user_name, user_type): """ Share handler with user/usergroup Args: permission_list (list) -- List of permission operation_type (int) -- Operation type (2-add / 3- delete) user_id (int) -- User id of share user user_name (str) -- Share user name user_type (int) -- Share user type (Ex : 13- User) Returns: None Raises: SDKExpception: if response is empty if response is not success if failed to share handler with User/Usergroup """ category_permission_list = [] for permission in permission_list: category_permission_list.append({'permissionId': permission, '_type_': 122}) request_json = { "entityAssociated": { "entity": [ { "entityType": 157, "_type_": 150, "entityId": self.handler_id } ] }, "securityAssociations": { "processHiddenPermission": 1, "associationsOperationType": operation_type, "associations": [ { "userOrGroup": [ { "userId": user_id, "_type_": user_type, "userName": user_name } ], "properties": { "categoryPermission": { "categoriesPermissionList": category_permission_list } } } ] } } flag, response = self.commcell_obj._cvpysdk_object.make_request( 'POST', self._share_handler, request_json) if flag: if 'response' in response.json(): resp = response.json()['response'] resp = resp[0] if resp.get('errorCode') != 0: error_message = resp['errorString'] o_str = 'Failed to share handler on datasource\nError: "{0}"'.format(error_message) raise SDKException('Datacube', '102', o_str) return response.json()['response'] raise SDKException('Datacube', '102', "Empty Response") raise SDKException('Response', '101', response.text)
class Handlers (datasource_object)
-
Class for representing all the handlers associated with the datasource.
Initialize object of the Handlers class.
Args
_datasource_object (object) – instance of the datastore class
Returns
object - instance of the Handlers class
Expand source code Browse git
class Handlers(object): """Class for representing all the handlers associated with the datasource.""" def __init__(self, datasource_object): """Initialize object of the Handlers class. Args: _datasource_object (object) -- instance of the datastore class Returns: object - instance of the Handlers class """ self._datasource_object = datasource_object self.commcell_obj = self._datasource_object._commcell_object self._create_handler = self.commcell_obj._services['CREATE_HANDLER'] self._get_handler = self.commcell_obj._services['GET_HANDLERS'] % ( self._datasource_object.datasource_id ) self._handlers = None self.refresh() def __str__(self): """Representation string consisting of all handlers of the datasource. Returns: str - string of all the handlers associated with the datasource """ representation_string = '{:^5}\t{:^20}\n\n'.format('S. No.', 'Handler') for index, handler in enumerate(self._handlers): sub_str = '{:^5}\t{:20}\n'.format(index + 1, handler) representation_string += sub_str return representation_string.strip() def __repr__(self): """Representation string for the instance of the Handlers class.""" return "Handlers class instance for Datasource: '{0}'".format( self._datasource_object.datasource_name ) def _get_handlers(self): """Gets all the handlers associated with the datasource Returns: dict - consists of all handlers in the datasource { "handler1_name": dict of handler1 properties, "handler2_name": dict of handler2 properties } Raises: SDKException: if response is empty if response is not success """ flag, response = self._datasource_object._commcell_object._cvpysdk_object.make_request( 'GET', self._get_handler) if flag: if response.json() and 'handlerInfos' in response.json(): handlers_dict = {} for dictionary in response.json()['handlerInfos']: temp_name = dictionary['handlerName'] handlers_dict[temp_name] = dictionary return handlers_dict raise SDKException('Response', '102') response_string = self._datasource_object._commcell_object._update_response_( response.text) raise SDKException('Response', '101', response_string) def has_handler(self, handler_name): """Checks if a handler exists in the datasource with the input handler name. Args: handler_name (str) -- name of the handler Returns: bool - boolean output whether the handler exists in the commcell or not Raises: SDKException: if type of the handler name argument is not string """ if not isinstance(handler_name, str): raise SDKException('Datacube', '101') return self._handlers and handler_name.lower() in map(str.lower, self._handlers) def get_properties(self, handler_name): """Returns a handler object of the specified handler name. Args: handler_name (str) -- name of the handler Returns: dict - properties for the given handler name """ return self._handlers[handler_name] def get(self, handler_name): """Returns a handler object of the specified handler name. Args: handler_name (str) -- name of the handler Returns: obj -- Object of Handler class """ if not isinstance(handler_name, str): raise SDKException('Datacube', '101') if self.has_handler(handler_name): handler_id = self.get_properties(handler_name)['handlerId'] return Handler(self._datasource_object, handler_name, handler_id) raise SDKException('Datacube', '102', "Unable to get handler class object") def delete(self, handler_name): """ deletes the handler associated with this handler object Args: handler_name (str) -- Name of the handler which needs to be deleted Returns: None Raises: SDKExpception: if response is empty if response is not success """ handler_id = self.get(handler_name).handler_id self._delete_handler = self.commcell_obj._services['DELETE_HANDLER'] % ( handler_id) flag, response = self.commcell_obj._cvpysdk_object.make_request( 'POST', self._delete_handler) if flag: if 'errorCode' in response.json() and response.json()['errorCode'] != 0: error_message = response.json()['errLogMessage'] o_str = 'Failed to Delete handler on datasource\nError: "{0}"'.format(error_message) raise SDKException('Datacube', '102', o_str) elif 'errorCode' in response.json() and response.json()['errorCode'] == 0: return else: raise SDKException('Datacube', '102', "Empty Response with no errorCode") raise SDKException('Response', '101', response.text) def add(self, handler_name, search_query, filter_query=None, facet_field=None, facet_query=None, rows=10, response_type="json", sort_column=[]): """Adds a new handler to the commcell. Args: handler_name (str) -- name of the handler to add to the datastore search_query (list) -- list of keywords on which the search is performed. filter_query (list) -- list of conditional queries which needs to be performed when the data is retrieved facet_field (list) -- list of fields to be faceted. facet_query (list) -- list of conditional queries for which the facet count should be retrieved rows (int) -- list of keywords on which the search is performed. response_type (str) -- format in which search results are retrieved. default: json Supported Types: json csv xml sort_column (list) -- list of column name to be sorted Raises: SDKException: if type of the handler name argument is not string if failed to delete handler if response is empty if response is not success if no handler exists with the given name """ request_json = { "dataSourceId": self._datasource_object.datasource_id, "handlerName": handler_name, "handlerInfo": { "defaultParams": { "q": search_query, "fq": filter_query, "sort": sort_column, "facet": [ "true" if facet_field or facet_query else "false" ], "facet.field": facet_field, "facet.query": facet_query, "rows": [rows], "wt": [response_type] }, "appendParams": {}, "rawDefaultParams": [], "rawAppendParams": [], "rawInvariantParams": [], "alwaysDecode": "true" } } flag, response = self.commcell_obj._cvpysdk_object.make_request( 'POST', self._create_handler, request_json ) if flag: if response.json() and 'error' in response.json(): if(response.json()['error'] == 'None' or response.json()['error'] is None): self.refresh() # reload new list. return error_code = response.json()['error']['errorCode'] if error_code == 0: self.refresh() # reload new list. return error_message = response.json()['error']['errLogMessage'] o_str = 'Failed to create handler\nError: "{0}"'.format(error_message) raise SDKException('Response', '102', o_str) raise SDKException('Response', '102') response_string = self.commcell_obj._update_response_( response.text) raise SDKException('Response', '101', response_string) def refresh(self): """Refresh the handlers associated with the Datasource.""" self._handlers = self._get_handlers()
Methods
def add(self, handler_name, search_query, filter_query=None, facet_field=None, facet_query=None, rows=10, response_type='json', sort_column=[])
-
Adds a new handler to the commcell.
Args
handler_name (str) – name of the handler to add to the datastore
search_query (list) – list of keywords on which the search is performed.
filter_query (list) – list of conditional queries which needs to be performed when the data is retrieved
facet_field (list) – list of fields to be faceted.
facet_query (list) – list of conditional queries for which the facet count should be retrieved
rows (int) – list of keywords on which the search is performed.
response_type (str) – format in which search results are retrieved. default: json
Supported Types: json csv xml
sort_column (list) – list of column name to be sorted
Raises
SDKException: if type of the handler name argument is not string
if failed to delete handler if response is empty if response is not success if no handler exists with the given name
Expand source code Browse git
def add(self, handler_name, search_query, filter_query=None, facet_field=None, facet_query=None, rows=10, response_type="json", sort_column=[]): """Adds a new handler to the commcell. Args: handler_name (str) -- name of the handler to add to the datastore search_query (list) -- list of keywords on which the search is performed. filter_query (list) -- list of conditional queries which needs to be performed when the data is retrieved facet_field (list) -- list of fields to be faceted. facet_query (list) -- list of conditional queries for which the facet count should be retrieved rows (int) -- list of keywords on which the search is performed. response_type (str) -- format in which search results are retrieved. default: json Supported Types: json csv xml sort_column (list) -- list of column name to be sorted Raises: SDKException: if type of the handler name argument is not string if failed to delete handler if response is empty if response is not success if no handler exists with the given name """ request_json = { "dataSourceId": self._datasource_object.datasource_id, "handlerName": handler_name, "handlerInfo": { "defaultParams": { "q": search_query, "fq": filter_query, "sort": sort_column, "facet": [ "true" if facet_field or facet_query else "false" ], "facet.field": facet_field, "facet.query": facet_query, "rows": [rows], "wt": [response_type] }, "appendParams": {}, "rawDefaultParams": [], "rawAppendParams": [], "rawInvariantParams": [], "alwaysDecode": "true" } } flag, response = self.commcell_obj._cvpysdk_object.make_request( 'POST', self._create_handler, request_json ) if flag: if response.json() and 'error' in response.json(): if(response.json()['error'] == 'None' or response.json()['error'] is None): self.refresh() # reload new list. return error_code = response.json()['error']['errorCode'] if error_code == 0: self.refresh() # reload new list. return error_message = response.json()['error']['errLogMessage'] o_str = 'Failed to create handler\nError: "{0}"'.format(error_message) raise SDKException('Response', '102', o_str) raise SDKException('Response', '102') response_string = self.commcell_obj._update_response_( response.text) raise SDKException('Response', '101', response_string)
def delete(self, handler_name)
-
deletes the handler associated with this handler object
Args
handler_name (str) – Name of the handler which needs to be deleted
Returns
None
Raises
SDKExpception:
if response is empty if response is not success
Expand source code Browse git
def delete(self, handler_name): """ deletes the handler associated with this handler object Args: handler_name (str) -- Name of the handler which needs to be deleted Returns: None Raises: SDKExpception: if response is empty if response is not success """ handler_id = self.get(handler_name).handler_id self._delete_handler = self.commcell_obj._services['DELETE_HANDLER'] % ( handler_id) flag, response = self.commcell_obj._cvpysdk_object.make_request( 'POST', self._delete_handler) if flag: if 'errorCode' in response.json() and response.json()['errorCode'] != 0: error_message = response.json()['errLogMessage'] o_str = 'Failed to Delete handler on datasource\nError: "{0}"'.format(error_message) raise SDKException('Datacube', '102', o_str) elif 'errorCode' in response.json() and response.json()['errorCode'] == 0: return else: raise SDKException('Datacube', '102', "Empty Response with no errorCode") raise SDKException('Response', '101', response.text)
def get(self, handler_name)
-
Returns a handler object of the specified handler name.
Args
handler_name (str) – name of the handler
Returns
obj – Object of Handler class
Expand source code Browse git
def get(self, handler_name): """Returns a handler object of the specified handler name. Args: handler_name (str) -- name of the handler Returns: obj -- Object of Handler class """ if not isinstance(handler_name, str): raise SDKException('Datacube', '101') if self.has_handler(handler_name): handler_id = self.get_properties(handler_name)['handlerId'] return Handler(self._datasource_object, handler_name, handler_id) raise SDKException('Datacube', '102', "Unable to get handler class object")
def get_properties(self, handler_name)
-
Returns a handler object of the specified handler name.
Args
handler_name (str) – name of the handler
Returns
dict - properties for the given handler name
Expand source code Browse git
def get_properties(self, handler_name): """Returns a handler object of the specified handler name. Args: handler_name (str) -- name of the handler Returns: dict - properties for the given handler name """ return self._handlers[handler_name]
def has_handler(self, handler_name)
-
Checks if a handler exists in the datasource with the input handler name.
Args
handler_name (str) – name of the handler
Returns
bool - boolean output whether the handler exists in the commcell or not
Raises
SDKException: if type of the handler name argument is not string
Expand source code Browse git
def has_handler(self, handler_name): """Checks if a handler exists in the datasource with the input handler name. Args: handler_name (str) -- name of the handler Returns: bool - boolean output whether the handler exists in the commcell or not Raises: SDKException: if type of the handler name argument is not string """ if not isinstance(handler_name, str): raise SDKException('Datacube', '101') return self._handlers and handler_name.lower() in map(str.lower, self._handlers)
def refresh(self)
-
Refresh the handlers associated with the Datasource.
Expand source code Browse git
def refresh(self): """Refresh the handlers associated with the Datasource.""" self._handlers = self._get_handlers()