Пример #1
0
def clone_from_tintri_snapshot(request, server_id, snapshot_uuid):
    profile = request.get_user_profile()
    server = get_object_or_404(Server, pk=server_id)

    if request.method == 'POST':
        form = TintriCloneSnapshotForm(request.POST, server=server)
        action = Tintri().get_or_create_clone_from_snapshot_server_action()
        if form.is_valid():
            context = form.save()
            context["snapshot_uuid"] = snapshot_uuid
            action_response = action.run_hook_as_job(
                owner=profile, servers=[server], context=context
            )
            action_kwargs = {
                "action": action,
                "server": server,
                "profile": profile,
                "request": request,
            }
            _format_action_html_response(
                action_response=action_response, **action_kwargs
            )

            return HttpResponseRedirect(request.META['HTTP_REFERER'])
    else:
        form = TintriCloneSnapshotForm(server=server)

    return {
        'title': "Clone VM from Tintri Snapshot",
        'content': f"Cloning from snapshot with UUID {snapshot_uuid}",
        'form': form,
        'use_ajax': True,
        'action_url': reverse('clone_from_tintri_snapshot', args=[server_id, snapshot_uuid]),
        'submit': 'Clone',
    }
Пример #2
0
def delete_tintri_snapshot(request, server_id, snapshot_uuid):
    profile = request.get_user_profile()
    server = get_object_or_404(Server, pk=server_id)

    if request.method == 'POST':
        action = Tintri().get_or_create_delete_snapshot_server_action()
        context = {'snapshot_uuid': snapshot_uuid}
        action_response = action.run_hook_as_job(
            owner=profile, servers=[server], context=context
        )
        action_kwargs = {
            "action": action,
            "server": server,
            "profile": profile,
            "request": request,
        }
        _format_action_html_response(
            action_response=action_response, **action_kwargs
        )

        return HttpResponseRedirect(request.META['HTTP_REFERER'])

    return {
        'title': "Delete Tintri Snapshot",
        "theme": "danger",
        "content": (
            f"Are you sure you want to delete snapshot with uuid '{snapshot_uuid}' from Tintri?"
            " This action cannot be undone!"
        ),
        'use_ajax': True,
        'action_url': reverse('delete_tintri_snapshot', args=[server_id, snapshot_uuid]),
        'submit': 'Delete',
    }