Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
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))
if flag:
if response.json() and 'activities' in response.json():
activities_dict = {}
for activity in response.json()['activities']:
name = activity['activity']['activityName'].lower()
activity_id = str(activity['activity']['schemaId'])
description = activity.get('description')
activities_dict[name] = {
'description': description,
'id': activity_id,
}
return activities_dict
else:
raise SDKException('Response', '102')
else:
raise SDKException('Response', '101', self._update_response_(response.text))
restore_option["FolderPath"] = folder_path
restore_option["ResourcePool"] = "/"
# populate restore disk and datastore
vm_disks = []
if "datastore" in restore_option:
ds = restore_option["datastore"]
new_name = vm_to_restore
diskpattern = "automation`Deployment`{0}.yaml".format(vm_to_restore)
_disk_dict = self._disk_dict_pattern(diskpattern, ds, new_name)
if 'is_aws_proxy' in restore_option and not restore_option['is_aws_proxy']:
_disk_dict['Datastore'] = restore_option["datastore"]
vm_disks.append(_disk_dict)
if not vm_disks:
raise SDKException('Subclient', '104')
restore_option["disks"] = vm_disks
self._set_restore_inputs(
restore_option,
disks=vm_disks,
esx_host=restore_option.get('esx_host') or vs_metadata['esxHost'],
instance_size=restore_option.get('instanceSize', instance_size),
new_name=restore_option.get('new_name', "Delete" + vm_to_restore)
)
temp_dict = self._json_restore_advancedRestoreOptions(restore_option)
self._advanced_restore_option_list.append(temp_dict)