Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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