Module cvpysdk.datacube.datacube
Main file for performing operations related to Datacube APIs.
The class Datacube
is defined here in this file,
that will directly interact with all the Datacube APIs.
Datacube
init(commcell_object) – initialise object of the Datacube class
repr() – returns the string representation of an instance of this class
_response_not_success() – parses through the exception response, and raises SDKException
_get_analytics_engines() – returns the list of all Content Indexing (CI) Servers
datasources() – returns an instance of the Datasources class
get_jdbc_drivers() – gets the list all jdbc_drivers associated with the datacube.
refresh() – refresh the datasources associated with the Datacube Engine
refresh_engine() – refresh the index server associated with datacube
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 operations related to Datacube APIs.
The class `Datacube` is defined here in this file,
that will directly interact with all the Datacube APIs.
Datacube:
__init__(commcell_object) -- initialise object of the Datacube class
__repr__() -- returns the string representation of an instance of this class
_response_not_success() -- parses through the exception response, and raises SDKException
_get_analytics_engines() -- returns the list of all Content Indexing (CI) Servers
datasources() -- returns an instance of the Datasources class
get_jdbc_drivers() -- gets the list all jdbc_drivers associated with the datacube.
refresh() -- refresh the datasources associated with the Datacube Engine
refresh_engine() -- refresh the index server associated with datacube
"""
from __future__ import absolute_import
from __future__ import unicode_literals
from .datasource import Datasources
from ..exception import SDKException
USER_LOGGED_OUT_MESSAGE = 'User Logged Out. Please initialize the Commcell object again.'
"""str: Message to be returned to the user, when trying the get the value of an attribute
of the Commcell class, after the user was logged out.
"""
class Datacube(object):
""" Represents a datacube running on the commcell """
def __init__(self, commcell_object):
"""Initialize an instance of the Datacube class.
Args:
commcell_object (object) -- instance of the Commcell class
Returns:
object - instance of the Datacube class
"""
self._commcell_object = commcell_object
self._cvpysdk_object = commcell_object._cvpysdk_object
self._services = commcell_object._services
self._update_response_ = commcell_object._update_response_
self._ANALYTICS_ENGINES = self._services['GET_ALL_INDEX_SERVERS']
self._ALL_DATASOURCES = self._services['GET_ALL_DATASOURCES']
self._GET_JDBC_DRIVERS = None
self._analytics_engines = self._get_analytics_engines()
self._datasources = None
def __repr__(self):
"""String representation of the instance of this class.
Returns:
str - string consisting of the details of the instance of this class
"""
o_str = "Datacube class instance for CommServ '{0}'".format(
self._commcell_object.commserv_name
)
return o_str
def _response_not_success(self, response):
"""Helper function to raise an exception when reponse status is not 200 (OK).
Args:
response (object) -- response class object,
received upon running an API request, using the `requests` python package
"""
raise SDKException('Response', '101', self._update_response_(response.text))
def _get_analytics_engines(self):
"""Gets the list all the analytics engines associated with the datacube.
Returns:
list - array consisting details of all analytics engines
Raises:
SDKException:
if response is empty
if response is not success
"""
flag, response = self._cvpysdk_object.make_request('GET', self._ANALYTICS_ENGINES)
if flag:
if 'listOfCIServer' in response.json():
return response.json()['listOfCIServer']
return []
self._response_not_success(response)
@property
def analytics_engines(self):
"""Returns the value of the analytics engines attributes."""
return self._analytics_engines
@property
def datasources(self):
"""Returns the instance of the Datasources class."""
try:
if self._datasources is None:
self._datasources = Datasources(self)
return self._datasources
except AttributeError:
return USER_LOGGED_OUT_MESSAGE
def get_jdbc_drivers(self, analytics_engine):
"""Gets the list all jdbc_drivers associated with the datacube.
Args:
analytics_engine (str) -- client name of analytics_engine
Returns:
list - consists of all jdbc_drivers in the datacube
Raises:
SDKException:
if response is empty
if response is not success
"""
if not isinstance(analytics_engine, str):
raise SDKException('Datacube', '101')
engine_index = (
self.analytics_engines.index(engine)
for engine in self.analytics_engines
if engine["clientName"] == analytics_engine
).next()
self._GET_JDBC_DRIVERS = self._services['GET_JDBC_DRIVERS'] % (
self.analytics_engines[engine_index]["cloudID"]
)
flag, response = self._cvpysdk_object.make_request('GET', self._GET_JDBC_DRIVERS)
if flag:
if response.json() and 'drivers' in response.json():
return response.json()['drivers']
else:
raise SDKException('Datacube', '103')
else:
self._response_not_success(response)
def refresh(self):
"""Refresh the datasources associated to the Datacube Engine."""
self._datasources = None
def refresh_engine(self):
"""Refresh the Index server associated to the Datacube."""
self._analytics_engines = self._get_analytics_engines()
Global variables
var USER_LOGGED_OUT_MESSAGE
-
str: Message to be returned to the user, when trying the get the value of an attribute of the Commcell class, after the user was logged out.
Classes
class Datacube (commcell_object)
-
Represents a datacube running on the commcell
Initialize an instance of the Datacube class.
Args
commcell_object (object) – instance of the Commcell class
Returns
object - instance of the Datacube class
Expand source code Browse git
class Datacube(object): """ Represents a datacube running on the commcell """ def __init__(self, commcell_object): """Initialize an instance of the Datacube class. Args: commcell_object (object) -- instance of the Commcell class Returns: object - instance of the Datacube class """ self._commcell_object = commcell_object self._cvpysdk_object = commcell_object._cvpysdk_object self._services = commcell_object._services self._update_response_ = commcell_object._update_response_ self._ANALYTICS_ENGINES = self._services['GET_ALL_INDEX_SERVERS'] self._ALL_DATASOURCES = self._services['GET_ALL_DATASOURCES'] self._GET_JDBC_DRIVERS = None self._analytics_engines = self._get_analytics_engines() self._datasources = None def __repr__(self): """String representation of the instance of this class. Returns: str - string consisting of the details of the instance of this class """ o_str = "Datacube class instance for CommServ '{0}'".format( self._commcell_object.commserv_name ) return o_str def _response_not_success(self, response): """Helper function to raise an exception when reponse status is not 200 (OK). Args: response (object) -- response class object, received upon running an API request, using the `requests` python package """ raise SDKException('Response', '101', self._update_response_(response.text)) def _get_analytics_engines(self): """Gets the list all the analytics engines associated with the datacube. Returns: list - array consisting details of all analytics engines Raises: SDKException: if response is empty if response is not success """ flag, response = self._cvpysdk_object.make_request('GET', self._ANALYTICS_ENGINES) if flag: if 'listOfCIServer' in response.json(): return response.json()['listOfCIServer'] return [] self._response_not_success(response) @property def analytics_engines(self): """Returns the value of the analytics engines attributes.""" return self._analytics_engines @property def datasources(self): """Returns the instance of the Datasources class.""" try: if self._datasources is None: self._datasources = Datasources(self) return self._datasources except AttributeError: return USER_LOGGED_OUT_MESSAGE def get_jdbc_drivers(self, analytics_engine): """Gets the list all jdbc_drivers associated with the datacube. Args: analytics_engine (str) -- client name of analytics_engine Returns: list - consists of all jdbc_drivers in the datacube Raises: SDKException: if response is empty if response is not success """ if not isinstance(analytics_engine, str): raise SDKException('Datacube', '101') engine_index = ( self.analytics_engines.index(engine) for engine in self.analytics_engines if engine["clientName"] == analytics_engine ).next() self._GET_JDBC_DRIVERS = self._services['GET_JDBC_DRIVERS'] % ( self.analytics_engines[engine_index]["cloudID"] ) flag, response = self._cvpysdk_object.make_request('GET', self._GET_JDBC_DRIVERS) if flag: if response.json() and 'drivers' in response.json(): return response.json()['drivers'] else: raise SDKException('Datacube', '103') else: self._response_not_success(response) def refresh(self): """Refresh the datasources associated to the Datacube Engine.""" self._datasources = None def refresh_engine(self): """Refresh the Index server associated to the Datacube.""" self._analytics_engines = self._get_analytics_engines()
Instance variables
var analytics_engines
-
Returns the value of the analytics engines attributes.
Expand source code Browse git
@property def analytics_engines(self): """Returns the value of the analytics engines attributes.""" return self._analytics_engines
var datasources
-
Returns the instance of the Datasources class.
Expand source code Browse git
@property def datasources(self): """Returns the instance of the Datasources class.""" try: if self._datasources is None: self._datasources = Datasources(self) return self._datasources except AttributeError: return USER_LOGGED_OUT_MESSAGE
Methods
def get_jdbc_drivers(self, analytics_engine)
-
Gets the list all jdbc_drivers associated with the datacube.
Args
analytics_engine (str) – client name of analytics_engine
Returns
list - consists of all jdbc_drivers in the datacube
Raises
SDKException: if response is empty
if response is not success
Expand source code Browse git
def get_jdbc_drivers(self, analytics_engine): """Gets the list all jdbc_drivers associated with the datacube. Args: analytics_engine (str) -- client name of analytics_engine Returns: list - consists of all jdbc_drivers in the datacube Raises: SDKException: if response is empty if response is not success """ if not isinstance(analytics_engine, str): raise SDKException('Datacube', '101') engine_index = ( self.analytics_engines.index(engine) for engine in self.analytics_engines if engine["clientName"] == analytics_engine ).next() self._GET_JDBC_DRIVERS = self._services['GET_JDBC_DRIVERS'] % ( self.analytics_engines[engine_index]["cloudID"] ) flag, response = self._cvpysdk_object.make_request('GET', self._GET_JDBC_DRIVERS) if flag: if response.json() and 'drivers' in response.json(): return response.json()['drivers'] else: raise SDKException('Datacube', '103') else: self._response_not_success(response)
def refresh(self)
-
Refresh the datasources associated to the Datacube Engine.
Expand source code Browse git
def refresh(self): """Refresh the datasources associated to the Datacube Engine.""" self._datasources = None
def refresh_engine(self)
-
Refresh the Index server associated to the Datacube.
Expand source code Browse git
def refresh_engine(self): """Refresh the Index server associated to the Datacube.""" self._analytics_engines = self._get_analytics_engines()