'Cancels an in progress configuration change (update) or upgrade and
returns the deployment to its state before the upgrade or
configuration change was started.
service_name:
Name of the hosted service.
deployment_name:
The name of the deployment.
mode:
Specifies whether the rollback should proceed automatically.
auto - The rollback proceeds without further user input.
manual - You must call the Walk Upgrade Domain operation to
apply the rollback to each upgrade domain.
force:
Specifies whether the rollback should proceed even when it will
cause local data to be lost from some role instances. True if the
rollback should proceed; otherwise false if the rollback should
fail.'

def rollback_update_or_upgrade(self, service_name, deployment_name, mode, force):

    _validate_not_none('service_name', service_name)
    _validate_not_none('deployment_name', deployment_name)
    _validate_not_none('mode', mode)
    _validate_not_none('force', force)
    return self._perform_post((self._get_deployment_path_using_name(service_name, deployment_name) + '/?comp=rollback'), _XmlSerializer.rollback_upgrade_to_xml(mode, force), async=True)
