Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
"""Decides which instance object needs to be created"""
try:
instance_name = VSINSTANCE_TYPE[agent_object.instances._vs_instance_type_dict[instance_id]]
except KeyError:
instance_name = re.sub('[^A-Za-z0-9_]+', '', instance_name.replace(" ", "_"))
try:
instance_module = import_module("cvpysdk.instances.virtualserver.{}".format(instance_name))
except ImportError:
instance_module = import_module("cvpysdk.instances.virtualserver.null")
classes = getmembers(instance_module, lambda m: isclass(m) and not isabstract(m))
for name, _class in classes:
if issubclass(_class, VirtualServerInstance) and _class.__module__.rsplit(".", 1)[-1] == instance_name:
return object.__new__(_class)
def __new__(cls, backupset_object, subclient_name, subclient_id=None):
"""Decides which instance object needs to be created"""
instance_name = backupset_object._instance_object.instance_name
instance_name = re.sub('[^A-Za-z0-9_]+', '', instance_name.replace(" ", "_"))
try:
subclient_module = import_module("cvpysdk.subclients.virtualserver.{}".format(instance_name))
except ImportError:
subclient_module = import_module("cvpysdk.subclients.virtualserver.null")
classes = getmembers(subclient_module, lambda m: isclass(m) and not isabstract(m))
for name, _class in classes:
if issubclass(_class, VirtualServerSubclient) and _class.__module__.rsplit(".", 1)[-1] == instance_name:
return object.__new__(_class)
def __new__(cls, instance_object, backupset_name, backupset_id=None):
"""Decides which instance object needs to be created"""
instance_name = instance_object.instance_name
instance_name = re.sub('[^A-Za-z0-9_]+', '', instance_name.replace(" ", "_"))
try:
backupset_module = import_module("cvpysdk.backupsets._virtual_server.{}".format(instance_name))
except ImportError:
return object.__new__(cls)
classes = getmembers(backupset_module, lambda m: isclass(m) and not isabstract(m))
for name, _class in classes:
if issubclass(_class, Backupset) and _class.__module__.rsplit(".", 1)[-1] == instance_name:
return object.__new__(_class)
SDKException:
if export_location does not exist
if no workflow exists with the given name
if response is empty
if response is not success
if failed to write to export file
"""
workflow_name = self._workflow_name
if not self._commcell_object.workflows.has_workflow(workflow_name):
raise SDKException('Workflow', '104')
if export_location is None:
export_location = os.getcwd()
else:
if not isinstance(export_location, basestring):
raise SDKException('Workflow', '101')
if not os.path.exists(export_location):
os.makedirs(export_location)
request_xml = """
""".format(workflow_name)
file_restore_option = {}
if sf_options is None:
sf_options = {}
# check if client name is correct
if destination_client is None:
destination_client = self._backupset_object._instance_object.proxy_client
if isinstance(destination_client, Client):
client = destination_client
elif isinstance(destination_client, basestring):
client = Client(self._commcell_object, destination_client)
else:
raise SDKException('Subclient', '105')
file_restore_option["client_name"] = client.client_name
file_restore_option["destination_path"] = sf_options.get(
"destination_path", self._backupset_object.download_cache_path
)
self._restore_destination_json(file_restore_option)
# process the objects to restore
if isinstance(objects_to_restore, list):
objects_to_restore_list = objects_to_restore
else:
objects_to_restore_list = [objects_to_restore]
file_restore_option["paths"] = []
subclient_name)
)
if self._backupset_object is None:
if self._instance_object.backupsets.has_backupset(
'defaultBackupSet'):
self._backupset_object = self._instance_object.backupsets.get(
'defaultBackupSet')
else:
self._backupset_object = self._instance_object.backupsets.get(
sorted(self._instance_object.backupsets.all_backupsets)[0]
)
if not self._commcell_object.storage_policies.has_policy(
storage_policy):
raise SDKException(
'Subclient',
'102',
'Storage Policy: "{0}" does not exist in the Commcell'.format(
storage_policy)
)
if advanced_options:
if advanced_options.get("ondemand_subclient", False):
ondemand_value = advanced_options.get("ondemand_subclient")
else:
ondemand_value = False
else:
ondemand_value = False
request_json = {
"subClientProperties": {
if flag:
if response.json():
if 'sqlDestinationInstances' in response.json():
for instance in response.json()['sqlDestinationInstances']:
instances_dict = {
instance['genericEntity']['instanceName'].lower(): {
"instanceId": int(instance['genericEntity']['instanceId']),
"clientId": int(instance['genericEntity']['clientId'])
}
}
self.destination_instances_dict.update(instances_dict)
elif 'error' in response.json():
if 'errorMessage' in response.json()['error']:
error_message = response.json()['error']['errorMessage']
raise SDKException('Instance', '102', error_message)
else:
raise SDKException('Instance', '102', 'No Instance exists on commcell')
else:
raise SDKException('Response', '102')
else:
response_string = self._commcell_object._update_response_(response.text)
raise SDKException('Response', '101', response_string)
return response.json()
Raises:
SDKException:
Response was empty.
Response was not success.
"""
flag, response = self.commcell_object._cvpysdk_object.make_request(
"GET", self.commcell_object._services['GET_ALL_ROLES']
)
if flag:
if response.json():
if 'rolesInfo' in response.json():
self._roles_data = response.json()['rolesInfo']
return
raise SDKException('Response', '102')
raise SDKException('Response', '101')
def _get_schedule_id(self, schedule_name=None, schedule_id=None, task_id=None):
"""Gets the schedule id from the provided inputs.
Args:
schedule_name (str) -- name of the schedule
schedule_id (int) -- id of the schedule
task_id (int) -- task id of the schedule
Returns:
(int) schedule id of the schedule
"""
if not task_id and not schedule_name and not schedule_id:
raise SDKException(
'Schedules',
'102',
'Either Schedule Name or Schedule Id is needed')
if schedule_name and not isinstance(schedule_name, basestring):
raise SDKException('Schedules', '102')
if schedule_id and not isinstance(schedule_id, int):
raise SDKException('Schedules', '102')
if task_id and not isinstance(task_id, int):
raise SDKException('Schedules', '102')
if schedule_name:
schedule_name = schedule_name.lower()
for subtask_id, subtask_dict in self.schedules.items():
"{0}?association/entity/clientId={1}&association/entity/applicationId={2}".format(
self._INSTANCE, self._agent_object._client_object.client_id,
self._agent_object.agent_id
)
)
flag, response = self._cvpysdk_object.make_request('GET', instance_service)
if flag:
if response.json() and "instanceProperties" in response.json():
self._properties = response.json()["instanceProperties"][0]
self._instance = self._properties["instance"]
self._instance_name = self._properties["instance"]["instanceName"].lower()
self._instanceActivityControl = self._properties["instanceActivityControl"]
else:
raise SDKException('Response', '102')
else:
raise SDKException('Response', '101', self._update_response_(response.text))