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.3-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:
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
)
# Access sandbox operations
response = await client.sandbox.start_sandbox("sandbox-id", request)
# Run commands via tmux
result = await client.command.run_command(cmd_request)
# File operations
await client.file.read_file(request)
# Tmux operations
await client.tmux.list_tmux_panes()
# Clean up
await client.close()
# Or use as async context manager
async def main_with_context():
async with VirshSandbox(host="http://localhost:8080") as client:
# All APIs accessible through namespaced properties:
# - client.sandbox (SandboxApi)
# - client.command (CommandApi)
# - client.file (FileApi)
# - client.tmux (TmuxApi)
# - client.ansible (AnsibleApi)
# - client.audit (AuditApi)
# - client.health (HealthApi)
# - client.human (HumanApi)
# - client.plan (PlanApi)
# - client.vms (VMsApi)
pass
asyncio.run(main())
Individual API Classes (Advanced)
For more control, you can use the individual API classes directly:
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
- InternalAnsibleJob
- InternalAnsibleJobRequest
- InternalAnsibleJobResponse
- InternalAnsibleJobStatus
- InternalRestCreateSandboxRequest
- InternalRestCreateSandboxResponse
- InternalRestDiffRequest
- InternalRestDiffResponse
- InternalRestErrorResponse
- InternalRestGenerateResponse
- InternalRestInjectSSHKeyRequest
- InternalRestListVMsResponse
- InternalRestPublishRequest
- InternalRestPublishResponse
- InternalRestRunCommandRequest
- InternalRestRunCommandResponse
- InternalRestSnapshotRequest
- InternalRestSnapshotResponse
- InternalRestStartSandboxRequest
- InternalRestStartSandboxResponse
- InternalRestVmInfo
- TimeDuration
- TmuxClientInternalTypesAPIError
- TmuxClientInternalTypesApprovalStatus
- TmuxClientInternalTypesApproveRequest
- TmuxClientInternalTypesAskHumanRequest
- TmuxClientInternalTypesAskHumanResponse
- TmuxClientInternalTypesAuditEntry
- TmuxClientInternalTypesAuditQuery
- TmuxClientInternalTypesAuditQueryResponse
- TmuxClientInternalTypesComponentHealth
- TmuxClientInternalTypesCopyFileRequest
- TmuxClientInternalTypesCopyFileResponse
- TmuxClientInternalTypesCreatePaneRequest
- TmuxClientInternalTypesCreatePaneResponse
- TmuxClientInternalTypesCreatePlanRequest
- TmuxClientInternalTypesCreatePlanResponse
- TmuxClientInternalTypesDeleteFileRequest
- TmuxClientInternalTypesDeleteFileResponse
- TmuxClientInternalTypesEditFileRequest
- TmuxClientInternalTypesEditFileResponse
- TmuxClientInternalTypesFileInfo
- TmuxClientInternalTypesGetPlanResponse
- TmuxClientInternalTypesHealthResponse
- TmuxClientInternalTypesHealthStatus
- TmuxClientInternalTypesKillSessionResponse
- TmuxClientInternalTypesListApprovalsResponse
- TmuxClientInternalTypesListDirRequest
- TmuxClientInternalTypesListDirResponse
- TmuxClientInternalTypesListPanesResponse
- TmuxClientInternalTypesListPlansResponse
- TmuxClientInternalTypesPaneInfo
- TmuxClientInternalTypesPendingApproval
- TmuxClientInternalTypesPlan
- TmuxClientInternalTypesPlanStatus
- TmuxClientInternalTypesPlanStep
- TmuxClientInternalTypesReadFileRequest
- TmuxClientInternalTypesReadFileResponse
- TmuxClientInternalTypesReadPaneRequest
- TmuxClientInternalTypesReadPaneResponse
- TmuxClientInternalTypesRunCommandRequest
- TmuxClientInternalTypesRunCommandResponse
- TmuxClientInternalTypesSendKeysRequest
- TmuxClientInternalTypesSendKeysResponse
- TmuxClientInternalTypesSessionInfo
- TmuxClientInternalTypesStepStatus
- TmuxClientInternalTypesSwitchPaneRequest
- TmuxClientInternalTypesSwitchPaneResponse
- TmuxClientInternalTypesUpdatePlanRequest
- TmuxClientInternalTypesUpdatePlanResponse
- TmuxClientInternalTypesWindowInfo
- TmuxClientInternalTypesWriteFileRequest
- TmuxClientInternalTypesWriteFileResponse
- VirshSandboxInternalAnsibleJob
- VirshSandboxInternalAnsibleJobRequest
- VirshSandboxInternalAnsibleJobResponse
- VirshSandboxInternalAnsibleJobStatus
- VirshSandboxInternalErrorErrorResponse
- VirshSandboxInternalRestCreateSandboxRequest
- VirshSandboxInternalRestCreateSandboxResponse
- VirshSandboxInternalRestDiffRequest
- VirshSandboxInternalRestDiffResponse
- VirshSandboxInternalRestErrorResponse
- VirshSandboxInternalRestGenerateResponse
- VirshSandboxInternalRestInjectSSHKeyRequest
- VirshSandboxInternalRestListVMsResponse
- VirshSandboxInternalRestPublishRequest
- VirshSandboxInternalRestPublishResponse
- VirshSandboxInternalRestRunCommandRequest
- VirshSandboxInternalRestRunCommandResponse
- VirshSandboxInternalRestSnapshotRequest
- VirshSandboxInternalRestSnapshotResponse
- VirshSandboxInternalRestStartSandboxRequest
- VirshSandboxInternalRestStartSandboxResponse
- VirshSandboxInternalRestVmInfo
- VirshSandboxInternalStoreChangeDiff
- VirshSandboxInternalStoreCommand
- VirshSandboxInternalStoreCommandExecRecord
- VirshSandboxInternalStoreCommandSummary
- VirshSandboxInternalStoreDiff
- VirshSandboxInternalStorePackageInfo
- VirshSandboxInternalStoreSandbox
- VirshSandboxInternalStoreSandboxState
- VirshSandboxInternalStoreServiceChange
- VirshSandboxInternalStoreSnapshot
- VirshSandboxInternalStoreSnapshotKind
Documentation For Authorization
Endpoints do not require authorization.
Author
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file virsh_sandbox-0.0.3b0.tar.gz.
File metadata
- Download URL: virsh_sandbox-0.0.3b0.tar.gz
- Upload date:
- Size: 80.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49816f3158a2ba847a1d0f5a7cffb005af8d134cc450d554336d4816904ccc9f
|
|
| MD5 |
ddc7521336f0ed4b0fc874490374ae60
|
|
| BLAKE2b-256 |
b1c1e4519b274a959624abe47ad9d152c80b25cfc5e425de8e01cc0113b34466
|
File details
Details for the file virsh_sandbox-0.0.3b0-py3-none-any.whl.
File metadata
- Download URL: virsh_sandbox-0.0.3b0-py3-none-any.whl
- Upload date:
- Size: 289.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e784acc359187170281cf9a7d8c99589abb8894cb77d1da10e091cd8b9389b5f
|
|
| MD5 |
4edbdee700a9969995b70995c006dbe0
|
|
| BLAKE2b-256 |
c02bf23badc0cbd76ee6ef3dc31cdc406533a7df0e03bf1c98bf0ef7b96efbd5
|