def _get_umount_chain(driver, instance_id, volume_id, detach_task=None): driverCls = driver.__class__ provider = driver.provider identity = driver.identity pre_umount_status = update_volume_metadata.si( driverCls, provider, identity, volume_id, {'tmp_status': 'unmounting'}) umount = umount_task.si( driver.__class__, driver.provider, driver.identity, instance_id, volume_id) post_umount_status = update_volume_metadata.si( driverCls, provider, identity, volume_id, {'tmp_status': '', 'mount_location': ''}) pre_umount_status.link_error( mount_failed.s( driverCls, provider, identity, volume_id, True)) umount.link_error( mount_failed.s( driverCls, provider, identity, volume_id, True)) post_umount_status.link_error( mount_failed.s( driverCls, provider, identity, volume_id, True)) pre_umount_status.link(umount) umount.link(post_umount_status) if detach_task: post_umount_status.link(detach_task) return pre_umount_status
def _get_umount_chain(driver, instance_id, volume_id, detach_task=None): driverCls = driver.__class__ provider = driver.provider identity = driver.identity pre_umount_status = update_volume_metadata.si( driverCls, provider, identity, volume_id, {'tmp_status':'unmounting'}) umount= umount_task.si( driver.__class__, driver.provider, driver.identity, instance_id, volume_id) post_umount_status = update_volume_metadata.si( driverCls, provider, identity, volume_id, {'tmp_status':'', 'mount_location':''}) pre_umount_status.link_error( mount_failed.s( driverCls, provider, identity, volume_id, True)) umount.link_error( mount_failed.s( driverCls, provider, identity, volume_id, True)) post_umount_status.link_error( mount_failed.s( driverCls, provider, identity, volume_id, True)) pre_umount_status.link(umount) umount.link(post_umount_status) if detach_task: post_umount_status.link(detach_task) return pre_umount_status