Skip to main content

virsh-sandbox API

Project description

Virsh Sandbox

API for managing virtual machine sandboxes using libvirt

This Python package is automatically generated by the OpenAPI Generator project:

  • API version: 0.0.1-beta
  • Package version: 0.0.4-beta
  • Generator version: 7.19.0-SNAPSHOT
  • Build package: org.openapitools.codegen.languages.PythonClientCodegen

Requirements.

Python 3.9+

Installation & Usage

pip install

If the python package is hosted on a repository, you can install directly using:

pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git

(you may need to run pip with root permission: sudo pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git)

Then import the package:

import virsh_sandbox

Setuptools

Install via Setuptools.

python setup.py install --user

(or sudo python setup.py install to install the package for all users)

Then import the package:

import virsh_sandbox

Tests

Execute pytest to run the tests.

Getting Started

Please follow the installation procedure and then run the following:

Unified Client (Recommended)

The SDK provides a unified VirshSandbox client that simplifies API usage with flattened parameters:

import asyncio
from virsh_sandbox import VirshSandbox

async def main():
    # Create a unified client
    client = VirshSandbox(
        host="http://localhost:8080",
        tmux_host="http://localhost:8081"  # Optional: separate host for tmux operations
    )

    # Create a sandbox with simple parameters - no request objects needed!
    result = await client.sandbox.create_sandbox(
        source_vm_name="ubuntu-base",
        vm_name="my-sandbox",
        cpu=2,
        memory_mb=4096
    )

    # Run commands with flattened parameters
    output = await client.command.run_command(
        command="ls",
        args=["-la"],
        timeout=30
    )

    # File operations
    content = await client.file.read_file(path="/etc/hosts")

    # Tmux operations
    panes = await client.tmux.list_tmux_panes()

    # Clean up
    await client.close()

# Or use as async context manager for automatic cleanup
async def main_with_context():
    async with VirshSandbox(host="http://localhost:8080") as client:
        # All APIs accessible through namespaced properties:
        # - client.sandbox   (SandboxOperations)
        # - client.command   (CommandOperations)
        # - client.file      (FileOperations)
        # - client.tmux      (TmuxOperations)
        # - client.ansible   (AnsibleOperations)
        # - client.audit     (AuditOperations)
        # - client.health    (HealthOperations)
        # - client.human     (HumanOperations)
        # - client.plan      (PlanOperations)
        # - client.vms       (VMsOperations)

        await client.sandbox.create_sandbox(source_vm_name="base-vm")

asyncio.run(main())

Individual API Classes (Advanced)

For more control, you can use the individual API classes directly with request objects:

import virsh_sandbox
from virsh_sandbox.rest import ApiException
from pprint import pprint

# Defining the host is optional and defaults to http://localhost:8080
# See configuration.py for a list of all supported configuration parameters.
configuration = virsh_sandbox.Configuration(
    host = "http://localhost:8080"
)


# Enter a context with an instance of the API client
with virsh_sandbox.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = virsh_sandbox.AnsibleApi(api_client)
    request = virsh_sandbox.InternalAnsibleJobRequest() # InternalAnsibleJobRequest | Job creation parameters

    try:
        # Create Ansible job
        api_response = api_instance.create_ansible_job(request)
        print("The response of AnsibleApi->create_ansible_job:\n")
        pprint(api_response)
    except ApiException as e:
        print("Exception when calling AnsibleApi->create_ansible_job: %s\n" % e)

Documentation for API Endpoints

All URIs are relative to http://localhost:8080

Class Method HTTP request Description
AnsibleApi create_ansible_job POST /virsh-sandbox/v1/ansible/jobs Create Ansible job
AnsibleApi get_ansible_job GET /virsh-sandbox/v1/ansible/jobs/{job_id} Get Ansible job
AnsibleApi stream_ansible_job_output GET /virsh-sandbox/v1/ansible/jobs/{job_id}/stream Stream Ansible job output
AuditApi get_audit_stats GET /tmux-client/v1/audit/stats Get audit stats
AuditApi query_audit_log POST /tmux-client/v1/audit/query Query audit log
CommandApi get_allowed_commands GET /tmux-client/v1/command/allowed Get allowed commands
CommandApi run_command POST /tmux-client/v1/command/run Run command
FileApi check_file_exists POST /tmux-client/v1/file/exists Check if file exists
FileApi copy_file POST /tmux-client/v1/file/copy Copy file
FileApi delete_file POST /tmux-client/v1/file/delete Delete file
FileApi edit_file POST /tmux-client/v1/file/edit Edit file
FileApi get_file_hash POST /tmux-client/v1/file/hash Get file hash
FileApi list_directory POST /tmux-client/v1/file/list List directory contents
FileApi read_file POST /tmux-client/v1/file/read Read file
FileApi write_file POST /tmux-client/v1/file/write Write file
HealthApi get_health GET /virsh-sandbox/v1/health Health check
HealthApi get_health1 GET /tmux-client/v1/health Get health status
HumanApi ask_human POST /tmux-client/v1/human/ask Request human approval
HumanApi ask_human_async POST /tmux-client/v1/human/ask-async Request human approval asynchronously
HumanApi cancel_approval DELETE /tmux-client/v1/human/pending/{requestID} Cancel approval
HumanApi get_pending_approval GET /tmux-client/v1/human/pending/{requestID} Get pending approval
HumanApi list_pending_approvals GET /tmux-client/v1/human/pending List pending approvals
HumanApi respond_to_approval POST /tmux-client/v1/human/respond Respond to approval
PlanApi abort_plan POST /tmux-client/v1/plan/{planID}/abort Abort plan
PlanApi advance_plan_step POST /tmux-client/v1/plan/{planID}/advance Advance plan step
PlanApi create_plan POST /tmux-client/v1/plan/create Create plan
PlanApi delete_plan DELETE /tmux-client/v1/plan/{planID} Delete plan
PlanApi get_plan GET /tmux-client/v1/plan/{planID} Get plan
PlanApi list_plans GET /tmux-client/v1/plan/ List plans
PlanApi update_plan POST /tmux-client/v1/plan/update Update plan
SandboxApi create_sandbox POST /virsh-sandbox/v1/sandbox/create Create a new sandbox
SandboxApi create_snapshot POST /virsh-sandbox/v1/sandbox/{id}/snapshot Create snapshot
SandboxApi destroy_sandbox DELETE /virsh-sandbox/v1/sandbox/{id} Destroy sandbox
SandboxApi diff_snapshots POST /virsh-sandbox/v1/sandbox/{id}/diff Diff snapshots
SandboxApi generate_configuration POST /virsh-sandbox/v1/sandbox/{id}/generate/{tool} Generate configuration
SandboxApi inject_ssh_key POST /virsh-sandbox/v1/sandbox/{id}/sshkey Inject SSH key into sandbox
SandboxApi publish_changes POST /virsh-sandbox/v1/sandbox/{id}/publish Publish changes
SandboxApi run_sandbox_command POST /virsh-sandbox/v1/sandbox/{id}/run Run command in sandbox
SandboxApi start_sandbox POST /virsh-sandbox/v1/sandbox/{id}/start Start sandbox
TmuxApi create_tmux_pane POST /tmux-client/v1/tmux/panes/create Create tmux pane
TmuxApi create_tmux_session POST /tmux-client/v1/tmux/sessions/create Create tmux session
TmuxApi kill_tmux_pane DELETE /tmux-client/v1/tmux/panes/{paneID} Kill tmux pane
TmuxApi kill_tmux_session DELETE /tmux-client/v1/tmux/sessions/{sessionName} Kill tmux session
TmuxApi list_tmux_panes GET /tmux-client/v1/tmux/panes List tmux panes
TmuxApi list_tmux_sessions GET /tmux-client/v1/tmux/sessions List tmux sessions
TmuxApi list_tmux_windows GET /tmux-client/v1/tmux/windows List tmux windows
TmuxApi read_tmux_pane POST /tmux-client/v1/tmux/panes/read Read tmux pane
TmuxApi release_tmux_session POST /tmux-client/v1/tmux/sessions/{sessionId}/release Release tmux session
TmuxApi send_keys_to_pane POST /tmux-client/v1/tmux/panes/send-keys Send keys to tmux pane
TmuxApi switch_tmux_pane POST /tmux-client/v1/tmux/panes/switch Switch tmux pane
VMsApi list_virtual_machines GET /virsh-sandbox/v1/vms List all VMs

Documentation For Models

Documentation For Authorization

Endpoints do not require authorization.

Author

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

virsh_sandbox-0.0.4b0.tar.gz (85.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

virsh_sandbox-0.0.4b0-py3-none-any.whl (293.6 kB view details)

Uploaded Python 3

File details

Details for the file virsh_sandbox-0.0.4b0.tar.gz.

File metadata

  • Download URL: virsh_sandbox-0.0.4b0.tar.gz
  • Upload date:
  • Size: 85.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for virsh_sandbox-0.0.4b0.tar.gz
Algorithm Hash digest
SHA256 b3946b989356e9344585d4405a90dabf22e936de1799c9c76065f8d5b90a8357
MD5 9755276a49d3a8c2cab4689ebc618c48
BLAKE2b-256 8614a65a47626bb96780b70c840a8fe14d8047f68325a8af12cde4f96eda89d8

See more details on using hashes here.

File details

Details for the file virsh_sandbox-0.0.4b0-py3-none-any.whl.

File metadata

  • Download URL: virsh_sandbox-0.0.4b0-py3-none-any.whl
  • Upload date:
  • Size: 293.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for virsh_sandbox-0.0.4b0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b314bbeeda0c0f7a00b634b3a02befcf06cf1890f962d7bfa51884edee0a76e
MD5 5e9faee563bc7deba564fedf13849d2e
BLAKE2b-256 99d54caae1f6df483137a8eade05e72163e45037a7f64bb2ae352e143869c45a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page