Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 50 additions & 3 deletions hpe3par_sdk/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -3494,7 +3494,8 @@ def startRemoteCopy(self, name, optional=None):
starting snapshot or volume was specified, or the snapshot or
volume does not exist.
"""
return self.client.startRemoteCopy(name, optional)
response, body = self.client.startRemoteCopy(name, optional)
return self.getTask(body['taskid'])

def stopRemoteCopy(self, name, optional=None):
"""
Expand Down Expand Up @@ -3582,7 +3583,8 @@ def synchronizeRemoteCopyGroup(self, name, optional=None):
- RCOPY_GROUP_STARTED - The remote-copy group has already been
started.
"""
return self.client.synchronizeRemoteCopyGroup(name, optional)
response, body = self.client.synchronizeRemoteCopyGroup(name, optional)
return self.getTask(body['taskid'])

def recoverRemoteCopyGroupFromDisaster(self, name, action, optional=None):
"""
Expand Down Expand Up @@ -3705,7 +3707,12 @@ def recoverRemoteCopyGroupFromDisaster(self, name, action, optional=None):
- RCOPY_GROUP_OPERATION_ONLY_ON_SECONDARY_SIDE - Operation should
only be issued on secondary side.
"""
return self.client.recoverRemoteCopyGroupFromDisaster(name, action, optional)
response, body = self.client.recoverRemoteCopyGroupFromDisaster(name, action, optional)
tasks = []
for member in body['members']:
tasks.append(self.getTask(member['taskid']))
return tasks


def toggleRemoteCopyConfigMirror(self, target, mirror_config=True):
"""
Expand All @@ -3732,6 +3739,7 @@ def remoteCopyGroupVolumeExists(self, remote_copy_group_name, volume_name):
except exceptions.HTTPNotFound:
return False
return True


def admitRemoteCopyLinks(self, targetName, source_port, target_port_wwn_or_ip):
"""
Expand Down Expand Up @@ -3822,3 +3830,42 @@ def targetInRemoteCopyGroupExists(self, targetName, remote_copy_group_name):
"""
return self.client.targetInRemoteCopyGroupExists(targetName, remote_copy_group_name)

def createSchedule(self, schedule_name, task, taskfreq):
"""Create Schedule for volume snapshot.
:param schedule_name - The name of the schedule
:type - string
:param volume_name - The name of the volume
:type - string
:param expiration - Expiration period for snapshot
:type - string
:retain - Retaintion period for snapshot
:type - string
:taskschedule - schedule for snapshot created
:type - string
"""
return self.client.createSchedule(schedule_name, task, taskfreq)

def deleteSchedule(self, schedule_name):
"""Delete Schedule
:param schedule_name - The name of the schedule to delete
:type - string
"""
return self.client.deleteSchedule(schedule_name)

def scheduleExists(self, name):
try:
result = self.getSchedule(name)
except exceptions.HTTPNotFound:
return False
if 'No scheduled tasks listed' in result:
return False
else:
return True

def getSchedule(self, schedule_name):
"""Get Schedule
:param schedule_name - The name of the schedule to get information
:type - string
"""
return self.client.getSchedule(schedule_name)

Loading