pvectl 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.claude/rules/branch-before-changes.md +52 -0
- data/.claude/rules/documentation-updates.md +104 -0
- data/.claude/rules/git-workflow.md +84 -0
- data/.claude/rules/proxmox-api-docs.md +58 -0
- data/.claude/rules/rbs-signatures.md +80 -0
- data/.claude/rules/refactoring-as-design-option.md +35 -0
- data/.claude/scheduled_tasks.lock +1 -0
- data/.claude/settings.json +51 -0
- data/.mcp.json +8 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +138 -0
- data/CLAUDE.md +211 -0
- data/CODE_OF_CONDUCT.md +132 -0
- data/LICENSE.txt +21 -0
- data/README.md +143 -0
- data/Rakefile +8 -0
- data/docs/proxmox-api-update.sh +96 -0
- data/exe/pvectl +5 -0
- data/lib/pvectl/argv_preprocessor.rb +334 -0
- data/lib/pvectl/cli.rb +102 -0
- data/lib/pvectl/commands/apt.rb +389 -0
- data/lib/pvectl/commands/clone_container.rb +230 -0
- data/lib/pvectl/commands/clone_vm.rb +331 -0
- data/lib/pvectl/commands/cloudinit/command.rb +122 -0
- data/lib/pvectl/commands/cloudinit/dump.rb +94 -0
- data/lib/pvectl/commands/cloudinit/pending.rb +137 -0
- data/lib/pvectl/commands/cloudinit/regenerate.rb +79 -0
- data/lib/pvectl/commands/config/command.rb +65 -0
- data/lib/pvectl/commands/config/get_contexts.rb +68 -0
- data/lib/pvectl/commands/config/set_cluster.rb +103 -0
- data/lib/pvectl/commands/config/set_context.rb +136 -0
- data/lib/pvectl/commands/config/set_credentials.rb +181 -0
- data/lib/pvectl/commands/config/use_context.rb +69 -0
- data/lib/pvectl/commands/config/view.rb +67 -0
- data/lib/pvectl/commands/console.rb +93 -0
- data/lib/pvectl/commands/console_ct.rb +187 -0
- data/lib/pvectl/commands/console_vm.rb +187 -0
- data/lib/pvectl/commands/container_lifecycle_command.rb +77 -0
- data/lib/pvectl/commands/create_backup.rb +173 -0
- data/lib/pvectl/commands/create_container.rb +141 -0
- data/lib/pvectl/commands/create_resource_command.rb +244 -0
- data/lib/pvectl/commands/create_snapshot.rb +242 -0
- data/lib/pvectl/commands/create_vm.rb +267 -0
- data/lib/pvectl/commands/delete_backup.rb +139 -0
- data/lib/pvectl/commands/delete_command.rb +119 -0
- data/lib/pvectl/commands/delete_container.rb +30 -0
- data/lib/pvectl/commands/delete_snapshot.rb +248 -0
- data/lib/pvectl/commands/delete_vm.rb +127 -0
- data/lib/pvectl/commands/describe/command.rb +251 -0
- data/lib/pvectl/commands/edit_container.rb +56 -0
- data/lib/pvectl/commands/edit_dns.rb +149 -0
- data/lib/pvectl/commands/edit_hosts.rb +135 -0
- data/lib/pvectl/commands/edit_node.rb +54 -0
- data/lib/pvectl/commands/edit_resource_command.rb +180 -0
- data/lib/pvectl/commands/edit_vm.rb +154 -0
- data/lib/pvectl/commands/edit_volume.rb +189 -0
- data/lib/pvectl/commands/feature_command.rb +230 -0
- data/lib/pvectl/commands/feature_container.rb +21 -0
- data/lib/pvectl/commands/feature_vm.rb +94 -0
- data/lib/pvectl/commands/get/command.rb +360 -0
- data/lib/pvectl/commands/get/handlers/backups.rb +76 -0
- data/lib/pvectl/commands/get/handlers/capabilities.rb +107 -0
- data/lib/pvectl/commands/get/handlers/containers.rb +148 -0
- data/lib/pvectl/commands/get/handlers/disks.rb +107 -0
- data/lib/pvectl/commands/get/handlers/dns.rb +94 -0
- data/lib/pvectl/commands/get/handlers/hosts.rb +94 -0
- data/lib/pvectl/commands/get/handlers/nodes.rb +162 -0
- data/lib/pvectl/commands/get/handlers/services.rb +81 -0
- data/lib/pvectl/commands/get/handlers/snapshots.rb +97 -0
- data/lib/pvectl/commands/get/handlers/storage.rb +118 -0
- data/lib/pvectl/commands/get/handlers/subscription.rb +69 -0
- data/lib/pvectl/commands/get/handlers/tasks.rb +89 -0
- data/lib/pvectl/commands/get/handlers/templates.rb +175 -0
- data/lib/pvectl/commands/get/handlers/time.rb +118 -0
- data/lib/pvectl/commands/get/handlers/vms.rb +145 -0
- data/lib/pvectl/commands/get/handlers/volume.rb +134 -0
- data/lib/pvectl/commands/get/resource_handler.rb +63 -0
- data/lib/pvectl/commands/get/resource_registry.rb +18 -0
- data/lib/pvectl/commands/get/watch_loop.rb +129 -0
- data/lib/pvectl/commands/irreversible_command.rb +265 -0
- data/lib/pvectl/commands/logs/command.rb +275 -0
- data/lib/pvectl/commands/logs/handlers/journal.rb +46 -0
- data/lib/pvectl/commands/logs/handlers/syslog.rb +53 -0
- data/lib/pvectl/commands/logs/handlers/task_detail.rb +52 -0
- data/lib/pvectl/commands/logs/handlers/task_logs.rb +115 -0
- data/lib/pvectl/commands/logs/resource_handler.rb +46 -0
- data/lib/pvectl/commands/logs/resource_registry.rb +22 -0
- data/lib/pvectl/commands/migrate_command.rb +282 -0
- data/lib/pvectl/commands/migrate_container.rb +23 -0
- data/lib/pvectl/commands/migrate_vm.rb +122 -0
- data/lib/pvectl/commands/move_disk_command.rb +239 -0
- data/lib/pvectl/commands/move_disk_container.rb +21 -0
- data/lib/pvectl/commands/move_disk_vm.rb +127 -0
- data/lib/pvectl/commands/ping.rb +249 -0
- data/lib/pvectl/commands/pull.rb +342 -0
- data/lib/pvectl/commands/push.rb +352 -0
- data/lib/pvectl/commands/reset.rb +64 -0
- data/lib/pvectl/commands/resource_lifecycle_command.rb +277 -0
- data/lib/pvectl/commands/resource_registry.rb +73 -0
- data/lib/pvectl/commands/restart.rb +70 -0
- data/lib/pvectl/commands/restart_container.rb +18 -0
- data/lib/pvectl/commands/restore_backup.rb +236 -0
- data/lib/pvectl/commands/resume.rb +57 -0
- data/lib/pvectl/commands/rollback_snapshot.rb +228 -0
- data/lib/pvectl/commands/sendkey_vm.rb +205 -0
- data/lib/pvectl/commands/service.rb +293 -0
- data/lib/pvectl/commands/set_container.rb +50 -0
- data/lib/pvectl/commands/set_node.rb +52 -0
- data/lib/pvectl/commands/set_resource_command.rb +185 -0
- data/lib/pvectl/commands/set_vm.rb +136 -0
- data/lib/pvectl/commands/set_volume.rb +212 -0
- data/lib/pvectl/commands/shared_config_parsers.rb +126 -0
- data/lib/pvectl/commands/shared_flags.rb +155 -0
- data/lib/pvectl/commands/shutdown.rb +73 -0
- data/lib/pvectl/commands/shutdown_container.rb +18 -0
- data/lib/pvectl/commands/start.rb +79 -0
- data/lib/pvectl/commands/start_container.rb +18 -0
- data/lib/pvectl/commands/stop.rb +75 -0
- data/lib/pvectl/commands/stop_container.rb +18 -0
- data/lib/pvectl/commands/suspend.rb +64 -0
- data/lib/pvectl/commands/template_command.rb +205 -0
- data/lib/pvectl/commands/template_container.rb +27 -0
- data/lib/pvectl/commands/template_vm.rb +106 -0
- data/lib/pvectl/commands/top/command.rb +206 -0
- data/lib/pvectl/commands/top/handlers/containers.rb +61 -0
- data/lib/pvectl/commands/top/handlers/nodes.rb +61 -0
- data/lib/pvectl/commands/top/handlers/vms.rb +61 -0
- data/lib/pvectl/commands/top/resource_handler.rb +46 -0
- data/lib/pvectl/commands/top/resource_registry.rb +22 -0
- data/lib/pvectl/commands/unlink_disk_vm.rb +232 -0
- data/lib/pvectl/commands/vm_lifecycle_command.rb +77 -0
- data/lib/pvectl/commands/wakeonlan_node.rb +153 -0
- data/lib/pvectl/config/errors.rb +62 -0
- data/lib/pvectl/config/models/cluster.rb +180 -0
- data/lib/pvectl/config/models/context.rb +100 -0
- data/lib/pvectl/config/models/resolved_config.rb +171 -0
- data/lib/pvectl/config/models/user.rb +133 -0
- data/lib/pvectl/config/provider.rb +297 -0
- data/lib/pvectl/config/service.rb +300 -0
- data/lib/pvectl/config/store.rb +161 -0
- data/lib/pvectl/config/wizard.rb +309 -0
- data/lib/pvectl/config_serializer.rb +1034 -0
- data/lib/pvectl/connection/retry_handler.rb +161 -0
- data/lib/pvectl/connection.rb +157 -0
- data/lib/pvectl/console/terminal_session.rb +449 -0
- data/lib/pvectl/editor_session.rb +157 -0
- data/lib/pvectl/exit_codes.rb +43 -0
- data/lib/pvectl/formatters/base.rb +55 -0
- data/lib/pvectl/formatters/color_support.rb +90 -0
- data/lib/pvectl/formatters/json.rb +45 -0
- data/lib/pvectl/formatters/output_helper.rb +77 -0
- data/lib/pvectl/formatters/registry.rb +72 -0
- data/lib/pvectl/formatters/table.rb +235 -0
- data/lib/pvectl/formatters/wide.rb +93 -0
- data/lib/pvectl/formatters/yaml.rb +49 -0
- data/lib/pvectl/manifest_serializer.rb +142 -0
- data/lib/pvectl/models/apt_package.rb +107 -0
- data/lib/pvectl/models/backup.rb +173 -0
- data/lib/pvectl/models/base.rb +49 -0
- data/lib/pvectl/models/capability.rb +62 -0
- data/lib/pvectl/models/container.rb +205 -0
- data/lib/pvectl/models/container_operation_result.rb +27 -0
- data/lib/pvectl/models/dns_config.rb +54 -0
- data/lib/pvectl/models/hosts_file.rb +47 -0
- data/lib/pvectl/models/journal_entry.rb +16 -0
- data/lib/pvectl/models/network_interface.rb +85 -0
- data/lib/pvectl/models/node.rb +195 -0
- data/lib/pvectl/models/node_operation_result.rb +45 -0
- data/lib/pvectl/models/operation_result.rb +110 -0
- data/lib/pvectl/models/physical_disk.rb +193 -0
- data/lib/pvectl/models/service.rb +80 -0
- data/lib/pvectl/models/snapshot.rb +101 -0
- data/lib/pvectl/models/snapshot_description.rb +39 -0
- data/lib/pvectl/models/storage.rb +180 -0
- data/lib/pvectl/models/subscription.rb +87 -0
- data/lib/pvectl/models/syslog_entry.rb +17 -0
- data/lib/pvectl/models/task.rb +95 -0
- data/lib/pvectl/models/task_entry.rb +52 -0
- data/lib/pvectl/models/task_log_line.rb +17 -0
- data/lib/pvectl/models/time_config.rb +47 -0
- data/lib/pvectl/models/vm.rb +137 -0
- data/lib/pvectl/models/vm_operation_result.rb +27 -0
- data/lib/pvectl/models/volume.rb +133 -0
- data/lib/pvectl/models/volume_operation_result.rb +26 -0
- data/lib/pvectl/parsers/cloud_init_config.rb +92 -0
- data/lib/pvectl/parsers/disk_config.rb +97 -0
- data/lib/pvectl/parsers/lxc_mount_config.rb +98 -0
- data/lib/pvectl/parsers/lxc_net_config.rb +97 -0
- data/lib/pvectl/parsers/net_config.rb +95 -0
- data/lib/pvectl/parsers/smart_text.rb +42 -0
- data/lib/pvectl/plugin_loader.rb +157 -0
- data/lib/pvectl/presenters/apt_package.rb +99 -0
- data/lib/pvectl/presenters/backup.rb +128 -0
- data/lib/pvectl/presenters/base.rb +283 -0
- data/lib/pvectl/presenters/capability.rb +104 -0
- data/lib/pvectl/presenters/config/context.rb +80 -0
- data/lib/pvectl/presenters/container.rb +574 -0
- data/lib/pvectl/presenters/container_operation_result.rb +109 -0
- data/lib/pvectl/presenters/disk.rb +184 -0
- data/lib/pvectl/presenters/dns_config.rb +68 -0
- data/lib/pvectl/presenters/hosts_file.rb +61 -0
- data/lib/pvectl/presenters/journal_entry.rb +20 -0
- data/lib/pvectl/presenters/node.rb +762 -0
- data/lib/pvectl/presenters/node_operation_result.rb +50 -0
- data/lib/pvectl/presenters/operation_result.rb +61 -0
- data/lib/pvectl/presenters/service.rb +76 -0
- data/lib/pvectl/presenters/snapshot.rb +239 -0
- data/lib/pvectl/presenters/snapshot_operation_result.rb +125 -0
- data/lib/pvectl/presenters/storage.rb +329 -0
- data/lib/pvectl/presenters/subscription.rb +189 -0
- data/lib/pvectl/presenters/syslog_entry.rb +20 -0
- data/lib/pvectl/presenters/task_entry.rb +69 -0
- data/lib/pvectl/presenters/task_log_line.rb +20 -0
- data/lib/pvectl/presenters/template.rb +76 -0
- data/lib/pvectl/presenters/time_config.rb +86 -0
- data/lib/pvectl/presenters/top_container.rb +112 -0
- data/lib/pvectl/presenters/top_node.rb +115 -0
- data/lib/pvectl/presenters/top_presenter.rb +59 -0
- data/lib/pvectl/presenters/top_vm.rb +105 -0
- data/lib/pvectl/presenters/vm.rb +853 -0
- data/lib/pvectl/presenters/vm_operation_result.rb +109 -0
- data/lib/pvectl/presenters/volume.rb +136 -0
- data/lib/pvectl/presenters/volume_operation_result.rb +58 -0
- data/lib/pvectl/repositories/apt.rb +93 -0
- data/lib/pvectl/repositories/backup.rb +186 -0
- data/lib/pvectl/repositories/base.rb +110 -0
- data/lib/pvectl/repositories/capabilities.rb +96 -0
- data/lib/pvectl/repositories/container.rb +503 -0
- data/lib/pvectl/repositories/disk.rb +87 -0
- data/lib/pvectl/repositories/dns.rb +54 -0
- data/lib/pvectl/repositories/hosts.rb +63 -0
- data/lib/pvectl/repositories/journal.rb +23 -0
- data/lib/pvectl/repositories/node.rb +537 -0
- data/lib/pvectl/repositories/service.rb +139 -0
- data/lib/pvectl/repositories/snapshot.rb +133 -0
- data/lib/pvectl/repositories/storage.rb +302 -0
- data/lib/pvectl/repositories/subscription.rb +77 -0
- data/lib/pvectl/repositories/syslog.rb +25 -0
- data/lib/pvectl/repositories/task.rb +82 -0
- data/lib/pvectl/repositories/task_list.rb +30 -0
- data/lib/pvectl/repositories/task_log.rb +31 -0
- data/lib/pvectl/repositories/time_config.rb +53 -0
- data/lib/pvectl/repositories/vm.rb +616 -0
- data/lib/pvectl/repositories/volume.rb +306 -0
- data/lib/pvectl/selectors/base.rb +201 -0
- data/lib/pvectl/selectors/container.rb +116 -0
- data/lib/pvectl/selectors/disk.rb +59 -0
- data/lib/pvectl/selectors/vm.rb +116 -0
- data/lib/pvectl/selectors/volume.rb +59 -0
- data/lib/pvectl/services/backup.rb +209 -0
- data/lib/pvectl/services/clone_container.rb +260 -0
- data/lib/pvectl/services/clone_vm.rb +265 -0
- data/lib/pvectl/services/cloudinit.rb +96 -0
- data/lib/pvectl/services/console.rb +152 -0
- data/lib/pvectl/services/container_lifecycle.rb +124 -0
- data/lib/pvectl/services/create_container.rb +179 -0
- data/lib/pvectl/services/create_vm.rb +191 -0
- data/lib/pvectl/services/edit_container.rb +125 -0
- data/lib/pvectl/services/edit_dns.rb +159 -0
- data/lib/pvectl/services/edit_hosts.rb +78 -0
- data/lib/pvectl/services/edit_node.rb +147 -0
- data/lib/pvectl/services/edit_vm.rb +125 -0
- data/lib/pvectl/services/edit_volume.rb +224 -0
- data/lib/pvectl/services/get/resource_service.rb +98 -0
- data/lib/pvectl/services/move_disk.rb +132 -0
- data/lib/pvectl/services/pull_config.rb +94 -0
- data/lib/pvectl/services/push_config.rb +524 -0
- data/lib/pvectl/services/resize_volume.rb +253 -0
- data/lib/pvectl/services/resource_delete.rb +169 -0
- data/lib/pvectl/services/resource_migration.rb +170 -0
- data/lib/pvectl/services/sendkey.rb +108 -0
- data/lib/pvectl/services/service_lifecycle.rb +89 -0
- data/lib/pvectl/services/set_container.rb +128 -0
- data/lib/pvectl/services/set_node.rb +236 -0
- data/lib/pvectl/services/set_vm.rb +128 -0
- data/lib/pvectl/services/set_volume.rb +126 -0
- data/lib/pvectl/services/snapshot.rb +261 -0
- data/lib/pvectl/services/task_listing.rb +75 -0
- data/lib/pvectl/services/unlink_disk.rb +86 -0
- data/lib/pvectl/services/vm_lifecycle.rb +124 -0
- data/lib/pvectl/services/wakeonlan.rb +79 -0
- data/lib/pvectl/utils/resource_resolver.rb +80 -0
- data/lib/pvectl/version.rb +13 -0
- data/lib/pvectl/wizards/create_container.rb +105 -0
- data/lib/pvectl/wizards/create_vm.rb +98 -0
- data/lib/pvectl.rb +439 -0
- data/sig/external/gli.rbs +16 -0
- data/sig/external/proxmox_api.rbs +10 -0
- data/sig/pvectl/argv_preprocessor.rbs +53 -0
- data/sig/pvectl/cli.rbs +26 -0
- data/sig/pvectl/commands/apt.rbs +47 -0
- data/sig/pvectl/commands/clone_container.rbs +31 -0
- data/sig/pvectl/commands/clone_vm.rbs +33 -0
- data/sig/pvectl/commands/cloudinit/command.rbs +13 -0
- data/sig/pvectl/commands/cloudinit/dump.rbs +13 -0
- data/sig/pvectl/commands/cloudinit/pending.rbs +17 -0
- data/sig/pvectl/commands/cloudinit/regenerate.rbs +11 -0
- data/sig/pvectl/commands/config/command.rbs +9 -0
- data/sig/pvectl/commands/config/get_contexts.rbs +11 -0
- data/sig/pvectl/commands/config/set_cluster.rbs +11 -0
- data/sig/pvectl/commands/config/set_context.rbs +15 -0
- data/sig/pvectl/commands/config/set_credentials.rbs +15 -0
- data/sig/pvectl/commands/config/use_context.rbs +11 -0
- data/sig/pvectl/commands/config/view.rbs +11 -0
- data/sig/pvectl/commands/console.rbs +9 -0
- data/sig/pvectl/commands/console_ct.rbs +27 -0
- data/sig/pvectl/commands/console_vm.rbs +27 -0
- data/sig/pvectl/commands/container_lifecycle_command.rbs +25 -0
- data/sig/pvectl/commands/create_backup.rbs +29 -0
- data/sig/pvectl/commands/create_container.rbs +30 -0
- data/sig/pvectl/commands/create_resource_command.rbs +53 -0
- data/sig/pvectl/commands/create_snapshot.rbs +35 -0
- data/sig/pvectl/commands/create_vm.rbs +30 -0
- data/sig/pvectl/commands/delete_backup.rbs +25 -0
- data/sig/pvectl/commands/delete_command.rbs +45 -0
- data/sig/pvectl/commands/delete_container.rbs +11 -0
- data/sig/pvectl/commands/delete_snapshot.rbs +35 -0
- data/sig/pvectl/commands/delete_vm.rbs +13 -0
- data/sig/pvectl/commands/describe/command.rbs +27 -0
- data/sig/pvectl/commands/edit_container.rbs +17 -0
- data/sig/pvectl/commands/edit_dns.rbs +25 -0
- data/sig/pvectl/commands/edit_hosts.rbs +23 -0
- data/sig/pvectl/commands/edit_node.rbs +17 -0
- data/sig/pvectl/commands/edit_resource_command.rbs +35 -0
- data/sig/pvectl/commands/edit_vm.rbs +19 -0
- data/sig/pvectl/commands/edit_volume.rbs +24 -0
- data/sig/pvectl/commands/feature_command.rbs +43 -0
- data/sig/pvectl/commands/feature_container.rbs +10 -0
- data/sig/pvectl/commands/feature_vm.rbs +12 -0
- data/sig/pvectl/commands/get/command.rbs +42 -0
- data/sig/pvectl/commands/get/handlers/backups.rbs +23 -0
- data/sig/pvectl/commands/get/handlers/capabilities.rbs +29 -0
- data/sig/pvectl/commands/get/handlers/containers.rbs +35 -0
- data/sig/pvectl/commands/get/handlers/disks.rbs +27 -0
- data/sig/pvectl/commands/get/handlers/dns.rbs +25 -0
- data/sig/pvectl/commands/get/handlers/hosts.rbs +25 -0
- data/sig/pvectl/commands/get/handlers/nodes.rbs +33 -0
- data/sig/pvectl/commands/get/handlers/services.rbs +23 -0
- data/sig/pvectl/commands/get/handlers/snapshots.rbs +27 -0
- data/sig/pvectl/commands/get/handlers/storage.rbs +25 -0
- data/sig/pvectl/commands/get/handlers/subscription.rbs +25 -0
- data/sig/pvectl/commands/get/handlers/tasks.rbs +28 -0
- data/sig/pvectl/commands/get/handlers/templates.rbs +35 -0
- data/sig/pvectl/commands/get/handlers/time.rbs +29 -0
- data/sig/pvectl/commands/get/handlers/vms.rbs +35 -0
- data/sig/pvectl/commands/get/handlers/volume.rbs +27 -0
- data/sig/pvectl/commands/get/resource_handler.rbs +13 -0
- data/sig/pvectl/commands/get/resource_registry.rbs +8 -0
- data/sig/pvectl/commands/get/watch_loop.rbs +33 -0
- data/sig/pvectl/commands/irreversible_command.rbs +32 -0
- data/sig/pvectl/commands/logs/command.rbs +35 -0
- data/sig/pvectl/commands/logs/handlers/journal.rbs +21 -0
- data/sig/pvectl/commands/logs/handlers/syslog.rbs +21 -0
- data/sig/pvectl/commands/logs/handlers/task_detail.rbs +21 -0
- data/sig/pvectl/commands/logs/handlers/task_logs.rbs +35 -0
- data/sig/pvectl/commands/logs/resource_handler.rbs +11 -0
- data/sig/pvectl/commands/logs/resource_registry.rbs +8 -0
- data/sig/pvectl/commands/migrate_command.rbs +45 -0
- data/sig/pvectl/commands/migrate_container.rbs +11 -0
- data/sig/pvectl/commands/migrate_vm.rbs +13 -0
- data/sig/pvectl/commands/move_disk_command.rbs +43 -0
- data/sig/pvectl/commands/move_disk_container.rbs +11 -0
- data/sig/pvectl/commands/move_disk_vm.rbs +13 -0
- data/sig/pvectl/commands/ping.rbs +39 -0
- data/sig/pvectl/commands/pull.rbs +33 -0
- data/sig/pvectl/commands/push.rbs +32 -0
- data/sig/pvectl/commands/reset.rbs +11 -0
- data/sig/pvectl/commands/resource_lifecycle_command.rbs +55 -0
- data/sig/pvectl/commands/resource_registry.rbs +19 -0
- data/sig/pvectl/commands/restart.rbs +11 -0
- data/sig/pvectl/commands/restart_container.rbs +9 -0
- data/sig/pvectl/commands/restore_backup.rbs +27 -0
- data/sig/pvectl/commands/resume.rbs +11 -0
- data/sig/pvectl/commands/rollback_snapshot.rbs +31 -0
- data/sig/pvectl/commands/sendkey_vm.rbs +25 -0
- data/sig/pvectl/commands/service.rbs +38 -0
- data/sig/pvectl/commands/set_container.rbs +13 -0
- data/sig/pvectl/commands/set_node.rbs +13 -0
- data/sig/pvectl/commands/set_resource_command.rbs +25 -0
- data/sig/pvectl/commands/set_vm.rbs +15 -0
- data/sig/pvectl/commands/set_volume.rbs +24 -0
- data/sig/pvectl/commands/shared_config_parsers.rbs +19 -0
- data/sig/pvectl/commands/shared_flags.rbs +10 -0
- data/sig/pvectl/commands/shutdown.rbs +11 -0
- data/sig/pvectl/commands/shutdown_container.rbs +9 -0
- data/sig/pvectl/commands/start.rbs +11 -0
- data/sig/pvectl/commands/start_container.rbs +9 -0
- data/sig/pvectl/commands/stop.rbs +11 -0
- data/sig/pvectl/commands/stop_container.rbs +9 -0
- data/sig/pvectl/commands/suspend.rbs +11 -0
- data/sig/pvectl/commands/template_command.rbs +21 -0
- data/sig/pvectl/commands/template_container.rbs +10 -0
- data/sig/pvectl/commands/template_vm.rbs +12 -0
- data/sig/pvectl/commands/top/command.rbs +31 -0
- data/sig/pvectl/commands/top/handlers/containers.rbs +21 -0
- data/sig/pvectl/commands/top/handlers/nodes.rbs +21 -0
- data/sig/pvectl/commands/top/handlers/vms.rbs +21 -0
- data/sig/pvectl/commands/top/resource_handler.rbs +11 -0
- data/sig/pvectl/commands/top/resource_registry.rbs +8 -0
- data/sig/pvectl/commands/unlink_disk_vm.rbs +27 -0
- data/sig/pvectl/commands/vm_lifecycle_command.rbs +25 -0
- data/sig/pvectl/commands/wakeonlan_node.rbs +21 -0
- data/sig/pvectl/config/errors.rbs +24 -0
- data/sig/pvectl/config/models/cluster.rbs +39 -0
- data/sig/pvectl/config/models/context.rbs +23 -0
- data/sig/pvectl/config/models/resolved_config.rbs +51 -0
- data/sig/pvectl/config/models/user.rbs +31 -0
- data/sig/pvectl/config/provider.rbs +40 -0
- data/sig/pvectl/config/service.rbs +65 -0
- data/sig/pvectl/config/store.rbs +14 -0
- data/sig/pvectl/config/wizard.rbs +48 -0
- data/sig/pvectl/config_serializer.rbs +121 -0
- data/sig/pvectl/connection/retry_handler.rbs +31 -0
- data/sig/pvectl/connection.rbs +35 -0
- data/sig/pvectl/console/terminal_session.rbs +63 -0
- data/sig/pvectl/editor_session.rbs +33 -0
- data/sig/pvectl/exit_codes.rbs +19 -0
- data/sig/pvectl/formatters/base.rbs +13 -0
- data/sig/pvectl/formatters/color_support.rbs +13 -0
- data/sig/pvectl/formatters/json.rbs +7 -0
- data/sig/pvectl/formatters/output_helper.rbs +9 -0
- data/sig/pvectl/formatters/registry.rbs +13 -0
- data/sig/pvectl/formatters/table.rbs +25 -0
- data/sig/pvectl/formatters/wide.rbs +15 -0
- data/sig/pvectl/formatters/yaml.rbs +7 -0
- data/sig/pvectl/manifest_serializer.rbs +18 -0
- data/sig/pvectl/models/apt_package.rbs +26 -0
- data/sig/pvectl/models/backup.rbs +31 -0
- data/sig/pvectl/models/base.rbs +11 -0
- data/sig/pvectl/models/capability.rbs +16 -0
- data/sig/pvectl/models/container.rbs +44 -0
- data/sig/pvectl/models/container_operation_result.rbs +9 -0
- data/sig/pvectl/models/dns_config.rbs +15 -0
- data/sig/pvectl/models/hosts_file.rbs +13 -0
- data/sig/pvectl/models/journal_entry.rbs +10 -0
- data/sig/pvectl/models/network_interface.rbs +20 -0
- data/sig/pvectl/models/node.rbs +47 -0
- data/sig/pvectl/models/node_operation_result.rbs +12 -0
- data/sig/pvectl/models/operation_result.rbs +21 -0
- data/sig/pvectl/models/physical_disk.rbs +35 -0
- data/sig/pvectl/models/service.rbs +18 -0
- data/sig/pvectl/models/snapshot.rbs +21 -0
- data/sig/pvectl/models/snapshot_description.rbs +18 -0
- data/sig/pvectl/models/storage.rbs +39 -0
- data/sig/pvectl/models/subscription.rbs +24 -0
- data/sig/pvectl/models/syslog_entry.rbs +10 -0
- data/sig/pvectl/models/task.rbs +22 -0
- data/sig/pvectl/models/task_entry.rbs +24 -0
- data/sig/pvectl/models/task_log_line.rbs +10 -0
- data/sig/pvectl/models/time_config.rbs +12 -0
- data/sig/pvectl/models/vm.rbs +32 -0
- data/sig/pvectl/models/vm_operation_result.rbs +9 -0
- data/sig/pvectl/models/volume.rbs +29 -0
- data/sig/pvectl/models/volume_operation_result.rbs +9 -0
- data/sig/pvectl/parsers/cloud_init_config.rbs +15 -0
- data/sig/pvectl/parsers/disk_config.rbs +19 -0
- data/sig/pvectl/parsers/lxc_mount_config.rbs +19 -0
- data/sig/pvectl/parsers/lxc_net_config.rbs +19 -0
- data/sig/pvectl/parsers/net_config.rbs +19 -0
- data/sig/pvectl/parsers/smart_text.rbs +7 -0
- data/sig/pvectl/plugin_loader.rbs +25 -0
- data/sig/pvectl/presenters/apt_package.rbs +19 -0
- data/sig/pvectl/presenters/backup.rbs +25 -0
- data/sig/pvectl/presenters/base.rbs +41 -0
- data/sig/pvectl/presenters/capability.rbs +19 -0
- data/sig/pvectl/presenters/config/context.rbs +17 -0
- data/sig/pvectl/presenters/container.rbs +78 -0
- data/sig/pvectl/presenters/container_operation_result.rbs +19 -0
- data/sig/pvectl/presenters/disk.rbs +31 -0
- data/sig/pvectl/presenters/dns_config.rbs +13 -0
- data/sig/pvectl/presenters/hosts_file.rbs +13 -0
- data/sig/pvectl/presenters/journal_entry.rbs +11 -0
- data/sig/pvectl/presenters/node.rbs +118 -0
- data/sig/pvectl/presenters/node_operation_result.rbs +11 -0
- data/sig/pvectl/presenters/operation_result.rbs +17 -0
- data/sig/pvectl/presenters/service.rbs +15 -0
- data/sig/pvectl/presenters/snapshot.rbs +35 -0
- data/sig/pvectl/presenters/snapshot_operation_result.rbs +27 -0
- data/sig/pvectl/presenters/storage.rbs +59 -0
- data/sig/pvectl/presenters/subscription.rbs +36 -0
- data/sig/pvectl/presenters/syslog_entry.rbs +11 -0
- data/sig/pvectl/presenters/task_entry.rbs +21 -0
- data/sig/pvectl/presenters/task_log_line.rbs +11 -0
- data/sig/pvectl/presenters/template.rbs +15 -0
- data/sig/pvectl/presenters/time_config.rbs +19 -0
- data/sig/pvectl/presenters/top_container.rbs +17 -0
- data/sig/pvectl/presenters/top_node.rbs +17 -0
- data/sig/pvectl/presenters/top_presenter.rbs +13 -0
- data/sig/pvectl/presenters/top_vm.rbs +17 -0
- data/sig/pvectl/presenters/vm.rbs +91 -0
- data/sig/pvectl/presenters/vm_operation_result.rbs +19 -0
- data/sig/pvectl/presenters/volume.rbs +23 -0
- data/sig/pvectl/presenters/volume_operation_result.rbs +11 -0
- data/sig/pvectl/repositories/apt.rbs +17 -0
- data/sig/pvectl/repositories/backup.rbs +27 -0
- data/sig/pvectl/repositories/base.rbs +23 -0
- data/sig/pvectl/repositories/capabilities.rbs +20 -0
- data/sig/pvectl/repositories/container.rbs +63 -0
- data/sig/pvectl/repositories/disk.rbs +17 -0
- data/sig/pvectl/repositories/dns.rbs +13 -0
- data/sig/pvectl/repositories/hosts.rbs +13 -0
- data/sig/pvectl/repositories/journal.rbs +7 -0
- data/sig/pvectl/repositories/node.rbs +68 -0
- data/sig/pvectl/repositories/service.rbs +27 -0
- data/sig/pvectl/repositories/snapshot.rbs +19 -0
- data/sig/pvectl/repositories/storage.rbs +37 -0
- data/sig/pvectl/repositories/subscription.rbs +17 -0
- data/sig/pvectl/repositories/syslog.rbs +7 -0
- data/sig/pvectl/repositories/task.rbs +19 -0
- data/sig/pvectl/repositories/task_list.rbs +7 -0
- data/sig/pvectl/repositories/task_log.rbs +11 -0
- data/sig/pvectl/repositories/time_config.rbs +13 -0
- data/sig/pvectl/repositories/vm.rbs +85 -0
- data/sig/pvectl/repositories/volume.rbs +43 -0
- data/sig/pvectl/selectors/base.rbs +37 -0
- data/sig/pvectl/selectors/container.rbs +19 -0
- data/sig/pvectl/selectors/disk.rbs +13 -0
- data/sig/pvectl/selectors/vm.rbs +19 -0
- data/sig/pvectl/selectors/volume.rbs +13 -0
- data/sig/pvectl/services/backup.rbs +27 -0
- data/sig/pvectl/services/clone_container.rbs +35 -0
- data/sig/pvectl/services/clone_vm.rbs +35 -0
- data/sig/pvectl/services/cloudinit.rbs +19 -0
- data/sig/pvectl/services/console.rbs +23 -0
- data/sig/pvectl/services/container_lifecycle.rbs +26 -0
- data/sig/pvectl/services/create_container.rbs +64 -0
- data/sig/pvectl/services/create_vm.rbs +72 -0
- data/sig/pvectl/services/edit_container.rbs +17 -0
- data/sig/pvectl/services/edit_dns.rbs +23 -0
- data/sig/pvectl/services/edit_hosts.rbs +13 -0
- data/sig/pvectl/services/edit_node.rbs +21 -0
- data/sig/pvectl/services/edit_vm.rbs +17 -0
- data/sig/pvectl/services/edit_volume.rbs +18 -0
- data/sig/pvectl/services/get/resource_service.rbs +23 -0
- data/sig/pvectl/services/move_disk.rbs +21 -0
- data/sig/pvectl/services/pull_config.rbs +18 -0
- data/sig/pvectl/services/push_config.rbs +37 -0
- data/sig/pvectl/services/resize_volume.rbs +47 -0
- data/sig/pvectl/services/resource_delete.rbs +27 -0
- data/sig/pvectl/services/resource_migration.rbs +29 -0
- data/sig/pvectl/services/sendkey.rbs +19 -0
- data/sig/pvectl/services/service_lifecycle.rbs +17 -0
- data/sig/pvectl/services/set_container.rbs +14 -0
- data/sig/pvectl/services/set_node.rbs +23 -0
- data/sig/pvectl/services/set_vm.rbs +14 -0
- data/sig/pvectl/services/set_volume.rbs +12 -0
- data/sig/pvectl/services/snapshot.rbs +35 -0
- data/sig/pvectl/services/task_listing.rbs +13 -0
- data/sig/pvectl/services/unlink_disk.rbs +17 -0
- data/sig/pvectl/services/vm_lifecycle.rbs +26 -0
- data/sig/pvectl/services/wakeonlan.rbs +17 -0
- data/sig/pvectl/utils/resource_resolver.rbs +17 -0
- data/sig/pvectl/wizards/create_container.rbs +21 -0
- data/sig/pvectl/wizards/create_vm.rbs +21 -0
- data/sig/pvectl.rbs +9 -0
- metadata +675 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Presenters
|
|
3
|
+
class TaskEntry < Base
|
|
4
|
+
def columns: () -> Array[String]
|
|
5
|
+
|
|
6
|
+
def extra_columns: () -> Array[String]
|
|
7
|
+
|
|
8
|
+
def to_row: (untyped model, **untyped context) -> Array[String]
|
|
9
|
+
|
|
10
|
+
def extra_values: (untyped model, **untyped context) -> Array[String]
|
|
11
|
+
|
|
12
|
+
def to_hash: (untyped model) -> Hash[String, untyped]
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def format_time: (Integer? timestamp) -> String
|
|
17
|
+
|
|
18
|
+
def format_duration: (Integer? seconds) -> String
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Presenters
|
|
3
|
+
class Template < Base
|
|
4
|
+
def columns: () -> Array[String]
|
|
5
|
+
|
|
6
|
+
def to_row: (untyped model, **untyped context) -> Array[String]
|
|
7
|
+
|
|
8
|
+
def to_hash: (untyped model) -> Hash[String, untyped]
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def format_disk: (Integer? bytes) -> String
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Presenters
|
|
3
|
+
class TimeConfig < Base
|
|
4
|
+
TIMESTAMP_FORMAT: String
|
|
5
|
+
|
|
6
|
+
def columns: () -> Array[String]
|
|
7
|
+
|
|
8
|
+
def to_row: (untyped model, **untyped context) -> Array[String]
|
|
9
|
+
|
|
10
|
+
def to_hash: (untyped model) -> Hash[String, untyped]
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
def format_timestamp: (Integer? epoch) -> String
|
|
15
|
+
|
|
16
|
+
def iso: (Integer? epoch) -> String?
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Presenters
|
|
3
|
+
class TopContainer < Container
|
|
4
|
+
include TopPresenter
|
|
5
|
+
|
|
6
|
+
def columns: () -> Array[String]
|
|
7
|
+
|
|
8
|
+
def extra_columns: () -> Array[String]
|
|
9
|
+
|
|
10
|
+
def to_row: (untyped model, **untyped context) -> Array[String]
|
|
11
|
+
|
|
12
|
+
def extra_values: (untyped model, **untyped context) -> Array[String]
|
|
13
|
+
|
|
14
|
+
def to_hash: (untyped model) -> Hash[String, untyped]
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Presenters
|
|
3
|
+
class TopNode < Node
|
|
4
|
+
include TopPresenter
|
|
5
|
+
|
|
6
|
+
def columns: () -> Array[String]
|
|
7
|
+
|
|
8
|
+
def extra_columns: () -> Array[String]
|
|
9
|
+
|
|
10
|
+
def to_row: (untyped model, **untyped context) -> Array[String]
|
|
11
|
+
|
|
12
|
+
def extra_values: (untyped model, **untyped context) -> Array[String]
|
|
13
|
+
|
|
14
|
+
def to_hash: (untyped model) -> Hash[String, untyped]
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Presenters
|
|
3
|
+
module TopPresenter
|
|
4
|
+
def cpu_cores_value: (untyped resource) -> String
|
|
5
|
+
|
|
6
|
+
def cpu_usage_value: (untyped resource) -> String
|
|
7
|
+
|
|
8
|
+
def percent_display: (Numeric? used, Numeric? total) -> String
|
|
9
|
+
|
|
10
|
+
def percent_value: (Numeric? used, Numeric? total) -> Integer?
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Presenters
|
|
3
|
+
class TopVm < Vm
|
|
4
|
+
include TopPresenter
|
|
5
|
+
|
|
6
|
+
def columns: () -> Array[String]
|
|
7
|
+
|
|
8
|
+
def extra_columns: () -> Array[String]
|
|
9
|
+
|
|
10
|
+
def to_row: (untyped model, **untyped context) -> Array[String]
|
|
11
|
+
|
|
12
|
+
def extra_values: (untyped model, **untyped context) -> Array[String]
|
|
13
|
+
|
|
14
|
+
def to_hash: (untyped model) -> Hash[String, untyped]
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Presenters
|
|
3
|
+
class Vm < Base
|
|
4
|
+
def columns: () -> Array[String]
|
|
5
|
+
|
|
6
|
+
def extra_columns: () -> Array[String]
|
|
7
|
+
|
|
8
|
+
def to_row: (untyped model, **untyped context) -> Array[String?]
|
|
9
|
+
|
|
10
|
+
def extra_values: (untyped model, **untyped context) -> Array[String?]
|
|
11
|
+
|
|
12
|
+
def to_hash: (untyped model) -> Hash[String, untyped]
|
|
13
|
+
|
|
14
|
+
def to_description: (untyped model) -> Hash[String, untyped]
|
|
15
|
+
|
|
16
|
+
def display_name: () -> String
|
|
17
|
+
|
|
18
|
+
def cpu_percent: () -> String
|
|
19
|
+
|
|
20
|
+
def memory_used_gb: () -> Float?
|
|
21
|
+
|
|
22
|
+
def memory_total_gb: () -> Float?
|
|
23
|
+
|
|
24
|
+
def memory_display: () -> String
|
|
25
|
+
|
|
26
|
+
def disk_used_gb: () -> Integer?
|
|
27
|
+
|
|
28
|
+
def disk_total_gb: () -> Integer?
|
|
29
|
+
|
|
30
|
+
def disk_display: () -> String
|
|
31
|
+
|
|
32
|
+
private
|
|
33
|
+
|
|
34
|
+
attr_reader vm: untyped
|
|
35
|
+
|
|
36
|
+
alias resource vm
|
|
37
|
+
|
|
38
|
+
@consumed_keys: Set[Symbol]
|
|
39
|
+
|
|
40
|
+
def format_summary: (Hash[Symbol, untyped] config, Hash[Symbol, untyped] status) -> Hash[String, untyped]
|
|
41
|
+
|
|
42
|
+
def format_blockstat: (Hash[Symbol, untyped] status) -> (Array[Hash[String, String]] | String)
|
|
43
|
+
|
|
44
|
+
def find_bootdisk_size: (Hash[Symbol, untyped] config) -> String
|
|
45
|
+
|
|
46
|
+
def format_hardware: (Hash[Symbol, untyped] config, Hash[Symbol, untyped] data) -> Hash[String, untyped]
|
|
47
|
+
|
|
48
|
+
def format_memory_section: (String memory_str, Hash[Symbol, untyped]? status) -> (Hash[String, String] | String)
|
|
49
|
+
|
|
50
|
+
def format_options: (Hash[Symbol, untyped] config) -> Hash[String, String]
|
|
51
|
+
|
|
52
|
+
def format_agent_options: (Hash[Symbol, untyped] config) -> Hash[String, String]
|
|
53
|
+
|
|
54
|
+
def format_ostype: (String? ostype) -> String
|
|
55
|
+
|
|
56
|
+
def parse_disks: (Hash[Symbol, untyped] config) -> (Array[Hash[String, String]] | String)
|
|
57
|
+
|
|
58
|
+
def parse_disk_string: (String name, untyped value) -> Hash[String, String]?
|
|
59
|
+
|
|
60
|
+
def format_efi_disk: (Hash[Symbol, untyped] config) -> String
|
|
61
|
+
|
|
62
|
+
def format_tpm: (Hash[Symbol, untyped] config) -> String
|
|
63
|
+
|
|
64
|
+
def format_network: (Hash[Symbol, untyped] config, Array[Hash[Symbol, untyped]]? agent_ips) -> (Array[Hash[String, String]] | String)
|
|
65
|
+
|
|
66
|
+
def build_mac_ip_map: (Array[Hash[Symbol, untyped]]? agent_ips) -> Hash[String, String]
|
|
67
|
+
|
|
68
|
+
def parse_network_string: (String name, untyped value, Hash[String, String] mac_to_ip) -> Hash[String, String]?
|
|
69
|
+
|
|
70
|
+
def format_cloud_init: (Hash[Symbol, untyped] config) -> (Hash[String, untyped] | String)
|
|
71
|
+
|
|
72
|
+
def format_usb_devices: (Hash[Symbol, untyped] config) -> (Array[Hash[String, String]] | String)
|
|
73
|
+
|
|
74
|
+
def format_pci_passthrough: (Hash[Symbol, untyped] config) -> (Array[Hash[String, String]] | String)
|
|
75
|
+
|
|
76
|
+
def format_serial_ports: (Hash[Symbol, untyped] config) -> (Array[Hash[String, String]] | String)
|
|
77
|
+
|
|
78
|
+
def format_audio: (Hash[Symbol, untyped] config) -> String
|
|
79
|
+
|
|
80
|
+
def format_snapshots: (Array[Hash[Symbol, untyped]]? snapshots) -> (Array[Hash[String, String]] | String)
|
|
81
|
+
|
|
82
|
+
def format_pending_changes: (Array[Hash[Symbol, untyped]]? pending) -> (Array[Hash[String, String]] | String)
|
|
83
|
+
|
|
84
|
+
def consume: (*Symbol keys) -> void
|
|
85
|
+
|
|
86
|
+
def consume_matching: (Hash[Symbol, untyped] config, Regexp pattern) -> void
|
|
87
|
+
|
|
88
|
+
def format_remaining: (Hash[Symbol, untyped] config) -> (Array[Hash[String, String]] | String)
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Presenters
|
|
3
|
+
class VmOperationResult < OperationResult
|
|
4
|
+
def columns: () -> Array[String]
|
|
5
|
+
|
|
6
|
+
def extra_columns: () -> Array[String]
|
|
7
|
+
|
|
8
|
+
def to_row: (untyped model, **untyped context) -> Array[String]
|
|
9
|
+
|
|
10
|
+
def extra_values: (untyped model, **untyped context) -> Array[String]
|
|
11
|
+
|
|
12
|
+
def to_hash: (untyped model) -> Hash[String, untyped]
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def display_name: (untyped vm) -> String
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Presenters
|
|
3
|
+
class Volume < Base
|
|
4
|
+
def columns: () -> Array[String]
|
|
5
|
+
|
|
6
|
+
def extra_columns: () -> Array[String]
|
|
7
|
+
|
|
8
|
+
def to_row: (Models::Volume model, **untyped _context) -> Array[String]
|
|
9
|
+
|
|
10
|
+
def extra_values: (Models::Volume model, **untyped _context) -> Array[String]
|
|
11
|
+
|
|
12
|
+
def to_hash: (Models::Volume model) -> Hash[String, untyped]
|
|
13
|
+
|
|
14
|
+
def to_description: (Models::Volume model) -> Hash[String, Hash[String, String]]
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
attr_reader volume: Models::Volume
|
|
19
|
+
|
|
20
|
+
def volume_info_section: () -> Hash[String, untyped]
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Presenters
|
|
3
|
+
class VolumeOperationResult < OperationResult
|
|
4
|
+
def columns: () -> Array[String]
|
|
5
|
+
|
|
6
|
+
def to_row: (untyped model, **untyped context) -> Array[String]
|
|
7
|
+
|
|
8
|
+
def to_hash: (untyped model) -> Hash[String, untyped]
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Repositories
|
|
3
|
+
class Apt < Base
|
|
4
|
+
def pending: (String node) -> Array[Models::AptPackage]
|
|
5
|
+
|
|
6
|
+
def refresh: (String node, ?notify: bool, ?quiet: bool) -> String
|
|
7
|
+
|
|
8
|
+
def changelog: (String node, String package, ?version: String?) -> String
|
|
9
|
+
|
|
10
|
+
def versions: (String node) -> Array[Models::AptPackage]
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
def build_model: (Hash[Symbol, untyped] data) -> Models::AptPackage
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Repositories
|
|
3
|
+
class Backup < Base
|
|
4
|
+
def list: (?vmid: Integer?, ?storage: String?, ?node: String?) -> Array[Models::Backup]
|
|
5
|
+
|
|
6
|
+
def create: (Integer vmid, String node, storage: String, ?mode: String, ?compress: String, ?notes: String?, ?protected: bool) -> String
|
|
7
|
+
|
|
8
|
+
def delete: (String volid, String node) -> String?
|
|
9
|
+
|
|
10
|
+
def restore: (String volid, String node, vmid: Integer, ?storage: String?, ?force: bool, ?start: bool, ?unique: bool) -> String
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
def list_nodes: () -> Array[String]
|
|
15
|
+
|
|
16
|
+
def list_backup_storages: (String node) -> Array[String]
|
|
17
|
+
|
|
18
|
+
def list_from_storage: (String node, String storage, ?vmid: Integer?) -> Array[Models::Backup]
|
|
19
|
+
|
|
20
|
+
def build_backup_model: (Hash[Symbol, untyped] data, String node, String storage) -> Models::Backup
|
|
21
|
+
|
|
22
|
+
def parse_storage: (String volid) -> String
|
|
23
|
+
|
|
24
|
+
def detect_type_from_volid: (String volid) -> Symbol
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Repositories
|
|
3
|
+
class Base
|
|
4
|
+
def initialize: (untyped connection) -> void
|
|
5
|
+
|
|
6
|
+
def list: () -> Array[untyped]
|
|
7
|
+
|
|
8
|
+
def get: (String | Integer id) -> untyped
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
attr_reader connection: untyped
|
|
13
|
+
|
|
14
|
+
def build_model: (Hash[Symbol, untyped] data) -> untyped
|
|
15
|
+
|
|
16
|
+
def unwrap: (Array[untyped] | Hash[Symbol, untyped] | nil response) -> Array[untyped]
|
|
17
|
+
|
|
18
|
+
def extract_data: (Hash[Symbol, untyped] | untyped response) -> untyped
|
|
19
|
+
|
|
20
|
+
def models_from: (Array[untyped] | Hash[Symbol, untyped] | nil response, Class model_class) -> Array[untyped]
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Repositories
|
|
3
|
+
class Capabilities < Base
|
|
4
|
+
CPU_ENDPOINT: String
|
|
5
|
+
MACHINES_ENDPOINT: String
|
|
6
|
+
|
|
7
|
+
def list: (node: String) -> Array[Models::Capability]
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
def cpus: (String node) -> Array[Models::Capability]
|
|
12
|
+
|
|
13
|
+
def machines: (String node) -> Array[Models::Capability]
|
|
14
|
+
|
|
15
|
+
def build_cpu: (Hash[Symbol, untyped] data, String node) -> Models::Capability
|
|
16
|
+
|
|
17
|
+
def build_machine: (Hash[Symbol, untyped] data, String node) -> Models::Capability
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Repositories
|
|
3
|
+
class Container < Base
|
|
4
|
+
def list: (?node: String?) -> Array[Models::Container]
|
|
5
|
+
|
|
6
|
+
def get: (Integer | String ctid) -> Models::Container?
|
|
7
|
+
|
|
8
|
+
def describe: (Integer | String ctid) -> Models::Container?
|
|
9
|
+
|
|
10
|
+
def delete: (Integer | String ctid, String node, ?destroy_disks: bool, ?purge: bool, ?force: bool) -> String
|
|
11
|
+
|
|
12
|
+
def start: (Integer | String ctid, String node) -> String
|
|
13
|
+
|
|
14
|
+
def stop: (Integer | String ctid, String node) -> String
|
|
15
|
+
|
|
16
|
+
def shutdown: (Integer | String ctid, String node) -> String
|
|
17
|
+
|
|
18
|
+
def restart: (Integer | String ctid, String node) -> String
|
|
19
|
+
|
|
20
|
+
def clone: (Integer | String ctid, String node, Integer new_ctid, ?Hash[Symbol, untyped] options) -> String
|
|
21
|
+
|
|
22
|
+
def convert_to_template: (Integer | String ctid, String node) -> void
|
|
23
|
+
|
|
24
|
+
def migrate: (Integer ctid, String node, ?Hash[Symbol, untyped] params) -> String
|
|
25
|
+
|
|
26
|
+
def move_volume: (Integer | String ctid, String node, String volume, String target_storage, ?delete: bool, ?bwlimit: Integer?) -> String
|
|
27
|
+
|
|
28
|
+
def feature_available?: (Integer | String ctid, String node, String feature, ?snapname: String?) -> Hash[Symbol, untyped]
|
|
29
|
+
|
|
30
|
+
def next_available_ctid: () -> Integer
|
|
31
|
+
|
|
32
|
+
def termproxy: (Integer | String ctid, String node) -> Hash[Symbol, untyped]
|
|
33
|
+
|
|
34
|
+
def create: (String node, Integer ctid, ?Hash[Symbol, untyped] params) -> String
|
|
35
|
+
|
|
36
|
+
def update: (Integer | String ctid, String node, ?Hash[Symbol, untyped] params) -> nil
|
|
37
|
+
|
|
38
|
+
def resize: (Integer | String ctid, String node, disk: String, size: String) -> nil
|
|
39
|
+
|
|
40
|
+
def fetch_config: (String node, Integer ctid) -> Hash[Symbol, untyped]
|
|
41
|
+
|
|
42
|
+
private
|
|
43
|
+
|
|
44
|
+
def build_model: (Hash[Symbol, untyped] data) -> Models::Container
|
|
45
|
+
|
|
46
|
+
def find_container_basic_data: (Integer ctid) -> Hash[Symbol, untyped]?
|
|
47
|
+
|
|
48
|
+
def fetch_status: (String node, Integer ctid) -> Hash[Symbol, untyped]
|
|
49
|
+
|
|
50
|
+
def fetch_snapshots: (String node, Integer ctid) -> Array[Hash[Symbol, untyped]]
|
|
51
|
+
|
|
52
|
+
def extract_network_interfaces: (Hash[Symbol, untyped] config) -> Array[Hash[Symbol, untyped]]
|
|
53
|
+
|
|
54
|
+
def parse_network_interface: (String key, String value) -> Hash[Symbol, untyped]?
|
|
55
|
+
|
|
56
|
+
def fetch_firewall: (String node, Integer ctid) -> Hash[Symbol, untyped]
|
|
57
|
+
|
|
58
|
+
def fetch_tasks: (String node, Integer ctid, ?limit: Integer) -> Array[Models::TaskEntry]
|
|
59
|
+
|
|
60
|
+
def build_describe_model: (Hash[Symbol, untyped] basic_data, Hash[Symbol, untyped] config, Hash[Symbol, untyped] status, ?Array[Hash[Symbol, untyped]] snapshots, ?Array[Models::TaskEntry] tasks, ?Hash[Symbol, untyped] firewall) -> Models::Container
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Repositories
|
|
3
|
+
class Disk < Base
|
|
4
|
+
def list: (?node: String?) -> Array[Models::PhysicalDisk]
|
|
5
|
+
|
|
6
|
+
def smart: (String node_name, String disk_path) -> Hash[Symbol, untyped]
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def build_model: (Hash[Symbol, untyped] data) -> Models::PhysicalDisk
|
|
11
|
+
|
|
12
|
+
def disks_for_node: (String node_name) -> Array[Models::PhysicalDisk]
|
|
13
|
+
|
|
14
|
+
def online_nodes: () -> Array[String]
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Repositories
|
|
3
|
+
class Dns < Base
|
|
4
|
+
def fetch: (String node_name) -> Models::DnsConfig
|
|
5
|
+
|
|
6
|
+
def update: (String node_name, ?Hash[Symbol, untyped] params) -> void
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def build_model: (Hash[Symbol, untyped] data) -> Models::DnsConfig
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Repositories
|
|
3
|
+
class Hosts < Base
|
|
4
|
+
def fetch: (String node_name) -> Models::HostsFile
|
|
5
|
+
|
|
6
|
+
def update: (String node_name, String data, ?String? digest) -> void
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def build_model: (Hash[Symbol, untyped] data) -> Models::HostsFile
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Repositories
|
|
3
|
+
class Node < Base
|
|
4
|
+
def initialize: (untyped connection, ?storage_repository: Repositories::Storage?) -> void
|
|
5
|
+
|
|
6
|
+
def list: (?include_details: bool) -> Array[Models::Node]
|
|
7
|
+
|
|
8
|
+
def get: (String name, ?include_details: bool) -> Models::Node?
|
|
9
|
+
|
|
10
|
+
def describe: (String name) -> Models::Node?
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def fetch_config: (String node_name) -> Hash[Symbol, untyped]
|
|
14
|
+
|
|
15
|
+
def update: (String node_name, ?Hash[Symbol, untyped] params) -> void
|
|
16
|
+
|
|
17
|
+
def wakeonlan: (String node_name) -> String?
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
def build_model: (Hash[Symbol, untyped] data) -> Models::Node
|
|
22
|
+
|
|
23
|
+
def guest_counts_for_cluster: () -> Hash[String, Hash[Symbol, Integer]]
|
|
24
|
+
|
|
25
|
+
def details_for: (String node_name) -> Hash[Symbol, untyped]
|
|
26
|
+
|
|
27
|
+
def ip_for: (String node_name) -> String?
|
|
28
|
+
|
|
29
|
+
def extract_ip_from_network: (Array[Hash[Symbol, untyped]]? interfaces) -> String?
|
|
30
|
+
|
|
31
|
+
def extract_kernel_version: (String? kversion) -> String?
|
|
32
|
+
|
|
33
|
+
def describe_details_for: (String node_name) -> Hash[Symbol, untyped]
|
|
34
|
+
|
|
35
|
+
def subscription_for: (String node_name) -> Hash[Symbol, untyped]
|
|
36
|
+
|
|
37
|
+
def dns_for: (String node_name) -> Hash[Symbol, untyped]
|
|
38
|
+
|
|
39
|
+
def time_for: (String node_name) -> Hash[Symbol, untyped]
|
|
40
|
+
|
|
41
|
+
def services_for: (String node_name) -> Hash[Symbol, Array[Hash[Symbol, untyped]]]
|
|
42
|
+
|
|
43
|
+
def storage_pools_for: (String node_name) -> Hash[Symbol, Array[Models::Storage]]
|
|
44
|
+
|
|
45
|
+
def storage_repository: () -> Repositories::Storage
|
|
46
|
+
|
|
47
|
+
def disks_for: (String node_name) -> Hash[Symbol, Array[Hash[Symbol, untyped]]]
|
|
48
|
+
|
|
49
|
+
def qemu_cpu_for: (String node_name) -> Hash[Symbol, Array[Hash[Symbol, untyped]]]
|
|
50
|
+
|
|
51
|
+
def qemu_machines_for: (String node_name) -> Hash[Symbol, Array[Hash[Symbol, untyped]]]
|
|
52
|
+
|
|
53
|
+
def updates_for: (String node_name) -> Hash[Symbol, untyped]
|
|
54
|
+
|
|
55
|
+
def extended_status_for: (String node_name) -> Hash[Symbol, untyped]
|
|
56
|
+
|
|
57
|
+
def network_interfaces_for: (String node_name) -> Array[Hash[Symbol, untyped]]
|
|
58
|
+
|
|
59
|
+
def firewall_for: (String node_name) -> Hash[Symbol, untyped]
|
|
60
|
+
|
|
61
|
+
def tasks_for: (String node_name, ?limit: Integer) -> Hash[Symbol, Array[untyped]]
|
|
62
|
+
|
|
63
|
+
def build_describe_model: (Hash[Symbol, untyped] data) -> Models::Node
|
|
64
|
+
|
|
65
|
+
@storage_repository: Repositories::Storage?
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Repositories
|
|
3
|
+
class Service < Base
|
|
4
|
+
def list: (?node: String?) -> Array[Models::Service]
|
|
5
|
+
|
|
6
|
+
def state: (String node, String service) -> Models::Service?
|
|
7
|
+
|
|
8
|
+
def start: (String node, String service) -> String
|
|
9
|
+
|
|
10
|
+
def stop: (String node, String service) -> String
|
|
11
|
+
|
|
12
|
+
def restart: (String node, String service) -> String
|
|
13
|
+
|
|
14
|
+
def reload: (String node, String service) -> String
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
def build_model: (Hash[Symbol, untyped] data) -> Models::Service
|
|
19
|
+
|
|
20
|
+
def post_action: (String node, String service, String action) -> String
|
|
21
|
+
|
|
22
|
+
def services_for_node: (String node_name) -> Array[Models::Service]
|
|
23
|
+
|
|
24
|
+
def online_nodes: () -> Array[String]
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Repositories
|
|
3
|
+
class Snapshot < Base
|
|
4
|
+
def list: (Integer | String vmid, String node, Symbol resource_type) -> Array[Models::Snapshot]
|
|
5
|
+
|
|
6
|
+
def create: (Integer | String vmid, String node, Symbol resource_type, name: String, ?description: String?, ?vmstate: bool) -> String
|
|
7
|
+
|
|
8
|
+
def delete: (Integer | String vmid, String node, Symbol resource_type, String snapname, ?force: bool) -> String
|
|
9
|
+
|
|
10
|
+
def rollback: (Integer | String vmid, String node, Symbol resource_type, String snapname, ?start: bool) -> String
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
def resource_endpoint: (Symbol resource_type) -> String
|
|
15
|
+
|
|
16
|
+
def build_model: (Hash[Symbol, untyped] data, Integer | String vmid, String node, Symbol resource_type) -> Models::Snapshot
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Repositories
|
|
3
|
+
class Storage < Base
|
|
4
|
+
def list: (?node: String?) -> Array[Models::Storage]
|
|
5
|
+
|
|
6
|
+
def get: (String name) -> Models::Storage?
|
|
7
|
+
|
|
8
|
+
def list_instances: (String name) -> Array[Models::Storage]
|
|
9
|
+
|
|
10
|
+
def get_for_node: (String name, String node) -> Models::Storage?
|
|
11
|
+
|
|
12
|
+
def describe: (String name, ?node: String?) -> Models::Storage?
|
|
13
|
+
|
|
14
|
+
def list_for_node: (String node_name) -> Array[Models::Storage]
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
def build_model: (Hash[Symbol, untyped] data) -> Models::Storage
|
|
19
|
+
|
|
20
|
+
def build_model_from_node_api: (Hash[Symbol, untyped] data, String node_name) -> Models::Storage
|
|
21
|
+
|
|
22
|
+
def fetch_storage_config: (String name) -> Hash[Symbol, untyped]
|
|
23
|
+
|
|
24
|
+
def fetch_storage_status: (String node, String name) -> Hash[Symbol, untyped]
|
|
25
|
+
|
|
26
|
+
def fetch_storage_content: (String node, String name) -> Array[Hash[Symbol, untyped]]
|
|
27
|
+
|
|
28
|
+
def find_node_for_storage: (String name, Models::Storage storage) -> String?
|
|
29
|
+
|
|
30
|
+
def build_describe_model: (Models::Storage storage, Hash[Symbol, untyped] config, Hash[Symbol, untyped] status, Array[Hash[Symbol, untyped]] content) -> Models::Storage
|
|
31
|
+
|
|
32
|
+
def normalize_response: (Array[untyped] | Hash[Symbol, untyped] response) -> Array[Hash[Symbol, untyped]]
|
|
33
|
+
|
|
34
|
+
def aggregate_storage: (Array[Hash[Symbol, untyped]] storage_data) -> Array[Hash[Symbol, untyped]]
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|