Module cvpysdk.certificates
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.
# --------------------------------------------------------------------------
class Certificate:
"""Class for performing certificate related operations"""
def __init__(self, commcell):
"""
Initialize the Certificate class object
Args:
commcell: Commcell object
"""
self.commcell = commcell
self.url = commcell._services["CERTIFICATES"]
def _make_request(self, body={}):
"""
Make a certificate API request
Args:
body (dict): Body to pass in post request
Return:
Response of the request
Example:
_make_request({})
"""
success, resp = self.commcell._cvpysdk_object.make_request("POST", self.url, body)
resp_data = resp.json()
if resp.status_code != 200:
raise Exception(f"APIException: Response code {resp.status_code}.\n{resp_data}")
else:
return resp_data
def revoke(self, cert_ids):
"""
Revoke the certificate by certificate id
Args:
cert_ids (List[int]): List of certificate id's
Return:
bool: if request processed successfully
Example:
revoke([1, 2, 3])
"""
data = {
"operation": 3,
"certificateInfo": {
"certificates": [
]
}
}
if type(cert_ids) == list:
for id in cert_ids:
data["certificateInfo"]["certificates"].append(
{"id": int(id)}
)
elif type(cert_ids) == int or type(cert_ids) == str:
data["certificateInfo"]["certificates"].append(
{"id": int(cert_ids)}
)
else:
raise Exception("cert_ids should be of type list or int")
resp_data = self._make_request(data)
return True
def renew(self, cert_ids):
"""
Renew the certificate by certificate id
Args:
cert_ids (List[int]): List of certificate id's
Return:
bool: if request processed successfully
Example:
renew([1, 2, 3])
"""
data = {
"operation": 2,
"certificateInfo": {
"certificates": [
]
}
}
if type(cert_ids) == list:
for id in cert_ids:
data["certificateInfo"]["certificates"].append(
{"id": int(id)}
)
elif type(cert_ids) == int or type(cert_ids) == str:
data["certificateInfo"]["certificates"].append(
{"id": int(cert_ids)}
)
else:
raise Exception("cert_ids should be of type list or int")
resp_data = self._make_request(data)
return True
def force_client_authentication(self, operation):
"""
Enable of disable the lockdown mode
Args:
operation (bool): Turn ON/OFF the lockdown mode.
Return:
bool: if request processed successfully
Example:
force_client_authentication(True)
force_client_authentication(False)
"""
body = {
"operation": 0,
"certificateInfo": {
"forceClientAuth": operation
}
}
try :
resp_data = self._make_request(body)
return True
except Exception as e:
raise Exception(str(e))
def make_temp_certificate(self, client_id):
"""
Create temporary certificate of client
Args:
client_id (int): Client Id to generate certificate.
Return:
str: Temp certificate for the client.
Example:
make_temp_certificate(5)
"""
body = {
"operation": 4,
"makeTempCertClientID": client_id
}
resp_data = self._make_request(body)
return resp_data["certificateInfo"]["tempCertificateInfo"]
def client_certificate_rotation(self, months):
"""
Modify certificate rotation period.
Args:
months (int): Number of months.
Return:
bool: if request processed successfully
Example:
client_certificate_rotation(12)
"""
body = {
"operation": 0,
"certificateInfo": {
"ClientCertificateRotation": int(months)
}
}
try:
resp_data = self._make_request(body)
return True
except Exception as e:
raise Exception(str(e))
def ca_certificate_rotation(self, years):
"""
Modify certificate rotation period.
Args:
years (int): Number of years.
Return:
bool: if request processed successfully
Example:
ca_certificate_rotation(1)
"""
body = {
"operation": 0,
"certificateInfo": {
"CACertificateRotation": int(years)
}
}
try:
resp_data = self._make_request(body)
return True
except Exception as e:
raise Exception(str(e))
Classes
class Certificate (commcell)
-
Class for performing certificate related operations
Initialize the Certificate class object
Args: commcell: Commcell object
Expand source code Browse git
class Certificate: """Class for performing certificate related operations""" def __init__(self, commcell): """ Initialize the Certificate class object Args: commcell: Commcell object """ self.commcell = commcell self.url = commcell._services["CERTIFICATES"] def _make_request(self, body={}): """ Make a certificate API request Args: body (dict): Body to pass in post request Return: Response of the request Example: _make_request({}) """ success, resp = self.commcell._cvpysdk_object.make_request("POST", self.url, body) resp_data = resp.json() if resp.status_code != 200: raise Exception(f"APIException: Response code {resp.status_code}.\n{resp_data}") else: return resp_data def revoke(self, cert_ids): """ Revoke the certificate by certificate id Args: cert_ids (List[int]): List of certificate id's Return: bool: if request processed successfully Example: revoke([1, 2, 3]) """ data = { "operation": 3, "certificateInfo": { "certificates": [ ] } } if type(cert_ids) == list: for id in cert_ids: data["certificateInfo"]["certificates"].append( {"id": int(id)} ) elif type(cert_ids) == int or type(cert_ids) == str: data["certificateInfo"]["certificates"].append( {"id": int(cert_ids)} ) else: raise Exception("cert_ids should be of type list or int") resp_data = self._make_request(data) return True def renew(self, cert_ids): """ Renew the certificate by certificate id Args: cert_ids (List[int]): List of certificate id's Return: bool: if request processed successfully Example: renew([1, 2, 3]) """ data = { "operation": 2, "certificateInfo": { "certificates": [ ] } } if type(cert_ids) == list: for id in cert_ids: data["certificateInfo"]["certificates"].append( {"id": int(id)} ) elif type(cert_ids) == int or type(cert_ids) == str: data["certificateInfo"]["certificates"].append( {"id": int(cert_ids)} ) else: raise Exception("cert_ids should be of type list or int") resp_data = self._make_request(data) return True def force_client_authentication(self, operation): """ Enable of disable the lockdown mode Args: operation (bool): Turn ON/OFF the lockdown mode. Return: bool: if request processed successfully Example: force_client_authentication(True) force_client_authentication(False) """ body = { "operation": 0, "certificateInfo": { "forceClientAuth": operation } } try : resp_data = self._make_request(body) return True except Exception as e: raise Exception(str(e)) def make_temp_certificate(self, client_id): """ Create temporary certificate of client Args: client_id (int): Client Id to generate certificate. Return: str: Temp certificate for the client. Example: make_temp_certificate(5) """ body = { "operation": 4, "makeTempCertClientID": client_id } resp_data = self._make_request(body) return resp_data["certificateInfo"]["tempCertificateInfo"] def client_certificate_rotation(self, months): """ Modify certificate rotation period. Args: months (int): Number of months. Return: bool: if request processed successfully Example: client_certificate_rotation(12) """ body = { "operation": 0, "certificateInfo": { "ClientCertificateRotation": int(months) } } try: resp_data = self._make_request(body) return True except Exception as e: raise Exception(str(e)) def ca_certificate_rotation(self, years): """ Modify certificate rotation period. Args: years (int): Number of years. Return: bool: if request processed successfully Example: ca_certificate_rotation(1) """ body = { "operation": 0, "certificateInfo": { "CACertificateRotation": int(years) } } try: resp_data = self._make_request(body) return True except Exception as e: raise Exception(str(e))
Methods
def ca_certificate_rotation(self, years)
-
Modify certificate rotation period.
Args
years
:int
- Number of years.
Return: bool: if request processed successfully
Example
ca_certificate_rotation(1)
Expand source code Browse git
def ca_certificate_rotation(self, years): """ Modify certificate rotation period. Args: years (int): Number of years. Return: bool: if request processed successfully Example: ca_certificate_rotation(1) """ body = { "operation": 0, "certificateInfo": { "CACertificateRotation": int(years) } } try: resp_data = self._make_request(body) return True except Exception as e: raise Exception(str(e))
def client_certificate_rotation(self, months)
-
Modify certificate rotation period.
Args
months
:int
- Number of months.
Return: bool: if request processed successfully
Example
client_certificate_rotation(12)
Expand source code Browse git
def client_certificate_rotation(self, months): """ Modify certificate rotation period. Args: months (int): Number of months. Return: bool: if request processed successfully Example: client_certificate_rotation(12) """ body = { "operation": 0, "certificateInfo": { "ClientCertificateRotation": int(months) } } try: resp_data = self._make_request(body) return True except Exception as e: raise Exception(str(e))
def force_client_authentication(self, operation)
-
Enable of disable the lockdown mode
Args
operation
:bool
- Turn ON/OFF the lockdown mode.
Return: bool: if request processed successfully
Example
force_client_authentication(True) force_client_authentication(False)
Expand source code Browse git
def force_client_authentication(self, operation): """ Enable of disable the lockdown mode Args: operation (bool): Turn ON/OFF the lockdown mode. Return: bool: if request processed successfully Example: force_client_authentication(True) force_client_authentication(False) """ body = { "operation": 0, "certificateInfo": { "forceClientAuth": operation } } try : resp_data = self._make_request(body) return True except Exception as e: raise Exception(str(e))
def make_temp_certificate(self, client_id)
-
Create temporary certificate of client
Args
client_id
:int
- Client Id to generate certificate.
Return: str: Temp certificate for the client.
Example
make_temp_certificate(5)
Expand source code Browse git
def make_temp_certificate(self, client_id): """ Create temporary certificate of client Args: client_id (int): Client Id to generate certificate. Return: str: Temp certificate for the client. Example: make_temp_certificate(5) """ body = { "operation": 4, "makeTempCertClientID": client_id } resp_data = self._make_request(body) return resp_data["certificateInfo"]["tempCertificateInfo"]
def renew(self, cert_ids)
-
Renew the certificate by certificate id
Args
cert_ids
:List[int]
- List of certificate id's
Return: bool: if request processed successfully
Example
renew([1, 2, 3])
Expand source code Browse git
def renew(self, cert_ids): """ Renew the certificate by certificate id Args: cert_ids (List[int]): List of certificate id's Return: bool: if request processed successfully Example: renew([1, 2, 3]) """ data = { "operation": 2, "certificateInfo": { "certificates": [ ] } } if type(cert_ids) == list: for id in cert_ids: data["certificateInfo"]["certificates"].append( {"id": int(id)} ) elif type(cert_ids) == int or type(cert_ids) == str: data["certificateInfo"]["certificates"].append( {"id": int(cert_ids)} ) else: raise Exception("cert_ids should be of type list or int") resp_data = self._make_request(data) return True
def revoke(self, cert_ids)
-
Revoke the certificate by certificate id
Args
cert_ids
:List[int]
- List of certificate id's
Return: bool: if request processed successfully
Example
revoke([1, 2, 3])
Expand source code Browse git
def revoke(self, cert_ids): """ Revoke the certificate by certificate id Args: cert_ids (List[int]): List of certificate id's Return: bool: if request processed successfully Example: revoke([1, 2, 3]) """ data = { "operation": 3, "certificateInfo": { "certificates": [ ] } } if type(cert_ids) == list: for id in cert_ids: data["certificateInfo"]["certificates"].append( {"id": int(id)} ) elif type(cert_ids) == int or type(cert_ids) == str: data["certificateInfo"]["certificates"].append( {"id": int(cert_ids)} ) else: raise Exception("cert_ids should be of type list or int") resp_data = self._make_request(data) return True