276 lines
5.9 KiB
JSON
276 lines
5.9 KiB
JSON
{
|
|
"protocol": "jarvis.skill.v1",
|
|
"id": "proxmox.ve",
|
|
"name": "Proxmox VE",
|
|
"version": "1.0.0",
|
|
"description": "Proxmox-VE-Cluster- und Guest-Steuerung über die REST API.",
|
|
"runtime": {
|
|
"type": "process",
|
|
"command": "python3",
|
|
"args": [
|
|
"main.py"
|
|
],
|
|
"timeout_ms": 15000,
|
|
"env_from": [
|
|
"PROXMOX_BASE_URL",
|
|
"PROXMOX_TOKEN_ID",
|
|
"PROXMOX_TOKEN_SECRET",
|
|
"PROXMOX_VERIFY_TLS"
|
|
]
|
|
},
|
|
"permissions": {
|
|
"network": true,
|
|
"system_exec": true
|
|
},
|
|
"actions": [
|
|
{
|
|
"name": "version",
|
|
"description": "Prüft die Proxmox-API und liefert die Version.",
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"output_schema": {
|
|
"type": "object"
|
|
}
|
|
},
|
|
{
|
|
"name": "list_nodes",
|
|
"description": "Listet Proxmox-Nodes samt Status und Ressourcen.",
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {},
|
|
"additionalProperties": false
|
|
},
|
|
"output_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"nodes": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object"
|
|
}
|
|
},
|
|
"count": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"nodes",
|
|
"count"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
{
|
|
"name": "list_guests",
|
|
"description": "Listet QEMU-VMs und LXC-Container clusterweit.",
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"node": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"output_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"guests": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object"
|
|
}
|
|
},
|
|
"count": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"guests",
|
|
"count"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
{
|
|
"name": "guest_status",
|
|
"description": "Liest den aktuellen Status einer QEMU-VM oder eines LXC-Containers.",
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"node": {
|
|
"type": "string"
|
|
},
|
|
"guest_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"qemu",
|
|
"lxc"
|
|
]
|
|
},
|
|
"vmid": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"node",
|
|
"guest_type",
|
|
"vmid"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output_schema": {
|
|
"type": "object"
|
|
}
|
|
},
|
|
{
|
|
"name": "start_guest",
|
|
"description": "Startet eine QEMU-VM oder einen LXC-Container.",
|
|
"mutates": true,
|
|
"requires_confirmation": true,
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"node": {
|
|
"type": "string"
|
|
},
|
|
"guest_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"qemu",
|
|
"lxc"
|
|
]
|
|
},
|
|
"vmid": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"node",
|
|
"guest_type",
|
|
"vmid"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output_schema": {
|
|
"type": "object"
|
|
}
|
|
},
|
|
{
|
|
"name": "shutdown_guest",
|
|
"description": "Fährt eine QEMU-VM oder einen LXC-Container sauber herunter.",
|
|
"mutates": true,
|
|
"requires_confirmation": true,
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"node": {
|
|
"type": "string"
|
|
},
|
|
"guest_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"qemu",
|
|
"lxc"
|
|
]
|
|
},
|
|
"vmid": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"node",
|
|
"guest_type",
|
|
"vmid"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output_schema": {
|
|
"type": "object"
|
|
}
|
|
},
|
|
{
|
|
"name": "reboot_guest",
|
|
"description": "Startet eine QEMU-VM oder einen LXC-Container neu.",
|
|
"mutates": true,
|
|
"requires_confirmation": true,
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"node": {
|
|
"type": "string"
|
|
},
|
|
"guest_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"qemu",
|
|
"lxc"
|
|
]
|
|
},
|
|
"vmid": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"node",
|
|
"guest_type",
|
|
"vmid"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output_schema": {
|
|
"type": "object"
|
|
}
|
|
},
|
|
{
|
|
"name": "snapshot_guest",
|
|
"description": "Erstellt einen Proxmox-Snapshot eines Guests.",
|
|
"mutates": true,
|
|
"requires_confirmation": true,
|
|
"input_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"node": {
|
|
"type": "string"
|
|
},
|
|
"guest_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"qemu",
|
|
"lxc"
|
|
]
|
|
},
|
|
"vmid": {
|
|
"type": "integer"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"include_ram": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"node",
|
|
"guest_type",
|
|
"vmid",
|
|
"name"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
"output_schema": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
]
|
|
}
|