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,13 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class EditHosts
|
|
4
|
+
def initialize: (hosts_repository: untyped, ?editor_session: untyped?, ?options: Hash[Symbol, untyped]) -> void
|
|
5
|
+
|
|
6
|
+
def execute: (node_name: String) -> Models::NodeOperationResult?
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def build_result: (Hash[Symbol, untyped] resource_info, **untyped attrs) -> Models::NodeOperationResult
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class EditNode
|
|
4
|
+
READONLY_KEYS: Array[Symbol]
|
|
5
|
+
|
|
6
|
+
def initialize: (node_repository: untyped, ?editor_session: untyped?, ?options: Hash[Symbol, untyped]) -> void
|
|
7
|
+
|
|
8
|
+
def execute: (node_name: String) -> Models::NodeOperationResult?
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def compute_diff: (Hash[Symbol, untyped] original, Hash[Symbol, untyped] edited) -> Hash[Symbol, untyped]
|
|
13
|
+
|
|
14
|
+
def build_update_params: (Hash[Symbol, untyped] changes, Hash[Symbol, untyped] original_config) -> Hash[Symbol, untyped]
|
|
15
|
+
|
|
16
|
+
def build_result: (Hash[Symbol, untyped] resource_info, **untyped attrs) -> Models::NodeOperationResult
|
|
17
|
+
|
|
18
|
+
def not_found_result: (String node_name) -> Models::NodeOperationResult
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class EditVm
|
|
4
|
+
def initialize: (vm_repository: untyped, ?editor_session: untyped?, ?options: Hash[Symbol, untyped]) -> void
|
|
5
|
+
|
|
6
|
+
def execute: (vmid: Integer) -> Models::VmOperationResult?
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def build_update_params: (Hash[Symbol, untyped] changes, Hash[Symbol, untyped] original_config) -> Hash[Symbol, untyped]
|
|
11
|
+
|
|
12
|
+
def build_result: (Hash[Symbol, untyped] resource_info, **untyped attrs) -> Models::VmOperationResult
|
|
13
|
+
|
|
14
|
+
def not_found_result: (Integer vmid) -> Models::VmOperationResult
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class EditVolume
|
|
4
|
+
def initialize: (repository: untyped, resource_type: Symbol, ?editor_session: untyped?, ?options: Hash[Symbol, untyped]) -> void
|
|
5
|
+
def execute: (id: Integer, disk: String, node: String) -> Models::VolumeOperationResult?
|
|
6
|
+
|
|
7
|
+
private
|
|
8
|
+
def parse_disk_config: (String disk_value) -> Hash[String, String]
|
|
9
|
+
def build_yaml_content: (Hash[String, String] editable, String disk, Integer id, String node) -> String
|
|
10
|
+
def parse_edited_yaml: (String edited) -> Hash[String, untyped]
|
|
11
|
+
def no_changes?: (Hash[Symbol, untyped] changes) -> bool
|
|
12
|
+
def compute_diff: (Hash[String, String] original, Hash[String, untyped] edited) -> Hash[Symbol, untyped]
|
|
13
|
+
def apply_changes: (Integer id, String disk, String node, String original_disk_value, Hash[Symbol, untyped] changes) -> void
|
|
14
|
+
def rebuild_disk_config: (String current_value, Hash[String, String] updates, ?Array[String] removed_keys) -> String
|
|
15
|
+
def build_result: (Integer id, String disk, String node, **untyped attrs) -> Models::VolumeOperationResult
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
module Get
|
|
4
|
+
class ResourceService
|
|
5
|
+
def initialize: (handler: untyped, ?format: String, ?color_enabled: bool) -> void
|
|
6
|
+
|
|
7
|
+
def list: (?node: String?, ?name: String?, ?args: Array[String], ?storage: String?, ?vmid: Array[String]?, ?selector: Selectors::Base?, **untyped) -> String
|
|
8
|
+
|
|
9
|
+
def describe: (name: String, ?node: String?, ?args: Array[String], ?vmid: Array[String]?) -> String
|
|
10
|
+
|
|
11
|
+
private
|
|
12
|
+
|
|
13
|
+
attr_reader handler: untyped
|
|
14
|
+
attr_reader format: String
|
|
15
|
+
attr_reader color_enabled: bool
|
|
16
|
+
|
|
17
|
+
def format_output: (Array[untyped] models, untyped presenter) -> String
|
|
18
|
+
|
|
19
|
+
def format_output_describe: (untyped model, untyped presenter) -> String
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class MoveDisk
|
|
4
|
+
DEFAULT_TIMEOUT: Integer
|
|
5
|
+
|
|
6
|
+
def initialize: (vm_repository: untyped, container_repository: untyped, task_repository: untyped, ?options: Hash[Symbol, untyped]) -> void
|
|
7
|
+
|
|
8
|
+
def execute: (Symbol resource_type, Models::Vm | Models::Container resource, disk: String, target_storage: String) -> (Models::VmOperationResult | Models::ContainerOperationResult)
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def move_single: (Models::Vm | Models::Container resource, String disk, String target_storage) -> (Models::VmOperationResult | Models::ContainerOperationResult)
|
|
13
|
+
|
|
14
|
+
def invoke_repository: (Models::Vm | Models::Container resource, String disk, String target_storage) -> String
|
|
15
|
+
|
|
16
|
+
def build_result: (Models::Vm | Models::Container resource, **untyped attrs) -> (Models::VmOperationResult | Models::ContainerOperationResult)
|
|
17
|
+
|
|
18
|
+
def timeout: () -> Integer
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class PullConfig
|
|
4
|
+
@vm_repository: untyped
|
|
5
|
+
@container_repository: untyped
|
|
6
|
+
|
|
7
|
+
def initialize: (vm_repository: untyped, container_repository: untyped) -> void
|
|
8
|
+
def execute: (type: Symbol, ?ids: Array[Integer], ?all: bool, ?node: String?, ?selector: untyped?) -> Hash[Symbol, untyped]
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def repository_for: (Symbol type) -> untyped
|
|
13
|
+
def pull_single: (untyped repo, untyped resource, Symbol type) -> Hash[Symbol, untyped]
|
|
14
|
+
def build_metadata: (untyped resource, Symbol type) -> Hash[Symbol, untyped]
|
|
15
|
+
def type_label: (Symbol type) -> String
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class PushConfig
|
|
4
|
+
DEFAULT_TASK_TIMEOUT: Integer
|
|
5
|
+
|
|
6
|
+
@vm_repository: untyped
|
|
7
|
+
@container_repository: untyped
|
|
8
|
+
@task_repository: untyped
|
|
9
|
+
|
|
10
|
+
def initialize: (vm_repository: untyped, container_repository: untyped, ?task_repository: untyped) -> void
|
|
11
|
+
def prepare: (String yaml_string) -> Hash[Symbol, untyped]
|
|
12
|
+
def prepare_batch: (Array[Hash[Symbol, untyped]] yaml_contents, ?filter_type: Symbol?) -> Hash[Symbol, untyped]
|
|
13
|
+
def apply: (Array[Hash[Symbol, untyped]] plans) -> Hash[Symbol, untyped]
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
def prepare_create: (Symbol type, Hash[Symbol, untyped] metadata, Hash[Symbol, untyped] flat_config, untyped repo, ?vmid: Integer?, ?auto_id: bool) -> Hash[Symbol, untyped]
|
|
18
|
+
def allocate_vmid: (untyped repo, Symbol type) -> Integer
|
|
19
|
+
def repository_for: (Symbol type) -> untyped
|
|
20
|
+
def build_update_params: (Hash[Symbol, untyped] diff, Hash[Symbol, untyped] original_config, Symbol type) -> Hash[Symbol, untyped]
|
|
21
|
+
def apply_resize_ops: (untyped repo, Hash[Symbol, untyped] plan) -> Array[String]
|
|
22
|
+
def wait_for_task: (untyped upid) -> untyped
|
|
23
|
+
def vm_disk_key?: (Symbol | String key) -> bool
|
|
24
|
+
def create_disk_key?: (Symbol | String key, Symbol type) -> bool
|
|
25
|
+
def transform_disks_for_create: (Hash[Symbol, untyped] flat_config, Symbol type) -> Hash[Symbol, untyped]
|
|
26
|
+
def disk_value_for_create: (String value) -> String
|
|
27
|
+
def size_to_gib: (String size_str) -> String
|
|
28
|
+
def extract_disk_size: (String disk_value) -> String?
|
|
29
|
+
def disk_value_without_size: (String value) -> String
|
|
30
|
+
def replace_disk_size: (String value, String size) -> String
|
|
31
|
+
def collect_readonly_keys: (Hash[Symbol, untyped] flat_config, Symbol type) -> Array[Symbol]
|
|
32
|
+
def each_leaf_section: (Hash[Symbol, untyped] sections) { (Hash[Symbol, untyped]) -> void } -> void
|
|
33
|
+
def type_label: (Symbol type) -> String
|
|
34
|
+
def extract_api_error: (untyped exception) -> String
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class ResizeVolume
|
|
4
|
+
class VolumeNotFoundError < StandardError
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
class SizeTooSmallError < StandardError
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class ParsedSize < Struct[untyped]
|
|
11
|
+
attr_reader relative: bool
|
|
12
|
+
attr_reader value: String
|
|
13
|
+
attr_reader raw: String
|
|
14
|
+
|
|
15
|
+
def relative?: () -> bool
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
SIZE_PATTERN: Regexp
|
|
19
|
+
|
|
20
|
+
UNIT_MULTIPLIERS: Hash[String, (Integer | Float)]
|
|
21
|
+
|
|
22
|
+
def self.parse_size: (String? size_str) -> ParsedSize
|
|
23
|
+
|
|
24
|
+
def initialize: (repository: untyped) -> void
|
|
25
|
+
|
|
26
|
+
def preflight: (Integer id, String disk, ParsedSize parsed_size, node: String) -> Hash[Symbol, String]
|
|
27
|
+
|
|
28
|
+
def perform: (Integer id, String disk, String raw_size, node: String) -> Models::OperationResult
|
|
29
|
+
|
|
30
|
+
private
|
|
31
|
+
|
|
32
|
+
def extract_disk_size: (Hash[Symbol, untyped] config, String disk, Integer id) -> String
|
|
33
|
+
|
|
34
|
+
def calculate_new_size: (String current_size, ParsedSize parsed_size) -> String
|
|
35
|
+
|
|
36
|
+
def validate_new_size!: (String current_size, String new_size, ParsedSize parsed_size) -> void
|
|
37
|
+
|
|
38
|
+
def parse_size_components: (String size) -> [Float, String]
|
|
39
|
+
|
|
40
|
+
def convert_to_unit: (Float value, String from_unit, String to_unit) -> Float
|
|
41
|
+
|
|
42
|
+
def format_size: (Float value, String suffix) -> String
|
|
43
|
+
|
|
44
|
+
def size_to_bytes: (String size) -> Float
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class ResourceDelete
|
|
4
|
+
DEFAULT_TIMEOUT: Integer
|
|
5
|
+
|
|
6
|
+
def initialize: (vm_repository: untyped, container_repository: untyped, task_repository: untyped, ?options: Hash[Symbol, untyped]) -> void
|
|
7
|
+
|
|
8
|
+
def execute: (Symbol resource_type, Array[Models::Vm | Models::Container] resources) -> Array[Models::VmOperationResult | Models::ContainerOperationResult]
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def delete_single: (Models::Vm | Models::Container resource) -> (Models::VmOperationResult | Models::ContainerOperationResult)
|
|
13
|
+
|
|
14
|
+
def running_error: (Models::Vm | Models::Container resource) -> (Models::VmOperationResult | Models::ContainerOperationResult)
|
|
15
|
+
|
|
16
|
+
def stop_resource: (Models::Vm | Models::Container resource) -> (Models::VmOperationResult | Models::ContainerOperationResult)
|
|
17
|
+
|
|
18
|
+
def perform_delete: (Models::Vm | Models::Container resource) -> (Models::VmOperationResult | Models::ContainerOperationResult)
|
|
19
|
+
|
|
20
|
+
def build_result: (Models::Vm | Models::Container resource, **untyped attrs) -> (Models::VmOperationResult | Models::ContainerOperationResult)
|
|
21
|
+
|
|
22
|
+
def repository_for: (Symbol type) -> untyped
|
|
23
|
+
|
|
24
|
+
def timeout: () -> Integer
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class ResourceMigration
|
|
4
|
+
DEFAULT_TIMEOUT: Integer
|
|
5
|
+
|
|
6
|
+
def initialize: (vm_repository: untyped, container_repository: untyped, task_repository: untyped, ?options: Hash[Symbol, untyped]) -> void
|
|
7
|
+
|
|
8
|
+
def execute: (Symbol resource_type, Array[Models::Vm | Models::Container] resources, target: String) -> Array[Models::VmOperationResult | Models::ContainerOperationResult]
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def partition_by_target: (Array[Models::Vm | Models::Container] resources, String target) -> [Array[Models::Vm | Models::Container], Array[Models::Vm | Models::Container]]
|
|
13
|
+
|
|
14
|
+
def report_skipped: (Array[Models::Vm | Models::Container] skipped, String target) -> void
|
|
15
|
+
|
|
16
|
+
def all_on_target_results: (String target) -> Array[untyped]
|
|
17
|
+
|
|
18
|
+
def migrate_single: (Models::Vm | Models::Container resource, String target) -> (Models::VmOperationResult | Models::ContainerOperationResult)
|
|
19
|
+
|
|
20
|
+
def build_migrate_params: (String target) -> Hash[Symbol, untyped]
|
|
21
|
+
|
|
22
|
+
def build_result: (Models::Vm | Models::Container resource, **untyped attrs) -> (Models::VmOperationResult | Models::ContainerOperationResult)
|
|
23
|
+
|
|
24
|
+
def repository_for: (Symbol type) -> untyped
|
|
25
|
+
|
|
26
|
+
def timeout: () -> Integer
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class Sendkey
|
|
4
|
+
def initialize: (vm_repository: untyped) -> void
|
|
5
|
+
|
|
6
|
+
def execute: (vmid: Integer | String, key: String, ?node: String?) -> Models::VmOperationResult
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def not_found_result: (Integer vmid) -> Models::VmOperationResult
|
|
11
|
+
|
|
12
|
+
def not_running_result: (Models::Vm vm, String node, String key) -> Models::VmOperationResult
|
|
13
|
+
|
|
14
|
+
def success_result: (Models::Vm vm, String node, String key) -> Models::VmOperationResult
|
|
15
|
+
|
|
16
|
+
def failure_result: (Models::Vm? vm, String? node, String key, String message) -> Models::VmOperationResult
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class ServiceLifecycle
|
|
4
|
+
OPERATIONS: Array[Symbol]
|
|
5
|
+
|
|
6
|
+
def initialize: (service_repository: Repositories::Service) -> void
|
|
7
|
+
|
|
8
|
+
def execute: (operation: Symbol, node: String, service: String) -> Models::NodeOperationResult
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def validate_operation!: (Symbol operation) -> void
|
|
13
|
+
|
|
14
|
+
def build_result: (operation: Symbol, node: String, service: String, **untyped attrs) -> Models::NodeOperationResult
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class SetContainer
|
|
4
|
+
def initialize: (container_repository: untyped, ?options: Hash[Symbol, untyped]) -> void
|
|
5
|
+
def execute: (ctid: Integer, params: Hash[Symbol | String, untyped]) -> Models::ContainerOperationResult?
|
|
6
|
+
|
|
7
|
+
private
|
|
8
|
+
def compute_diff: (Hash[Symbol, untyped] config, Hash[Symbol | String, untyped] params) -> Hash[Symbol, untyped]
|
|
9
|
+
def build_update_params: (Hash[Symbol, untyped] changes, Hash[Symbol, untyped] original_config) -> Hash[Symbol, untyped]
|
|
10
|
+
def build_result: (Hash[Symbol, untyped] resource_info, **untyped attrs) -> Models::ContainerOperationResult
|
|
11
|
+
def not_found_result: (Integer ctid) -> Models::ContainerOperationResult
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class SetNode
|
|
4
|
+
TIMEZONE_KEY: Symbol
|
|
5
|
+
|
|
6
|
+
def initialize: (node_repository: untyped, ?time_repository: untyped?, ?options: Hash[Symbol, untyped]) -> void
|
|
7
|
+
def execute: (node_name: String, params: Hash[Symbol | String, untyped]) -> Models::NodeOperationResult?
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
def split_timezone: (Hash[Symbol | String, untyped] params) -> [Hash[Symbol | String, untyped], String?]
|
|
11
|
+
def current_timezone: (String node_name) -> String?
|
|
12
|
+
def compute_timezone_change: (String? current, String? requested) -> Hash[Symbol, String]?
|
|
13
|
+
def merge_timezone_into_diff: (Hash[Symbol, untyped] changes, Hash[Symbol, String] tz_change) -> void
|
|
14
|
+
def compute_diff: (Hash[Symbol, untyped] config, Hash[Symbol | String, untyped] params) -> Hash[Symbol, untyped]
|
|
15
|
+
def no_changes?: (Hash[Symbol, untyped] changes) -> bool
|
|
16
|
+
def apply_config_changes: (String node_name, Hash[Symbol, untyped] changes, Hash[Symbol, untyped] original_config) -> void
|
|
17
|
+
def config_changes_empty?: (Hash[Symbol, untyped] changes, Hash[Symbol, String]? tz_change) -> bool
|
|
18
|
+
def build_update_params: (Hash[Symbol, untyped] changes, Hash[Symbol, untyped] original_config) -> Hash[Symbol, untyped]
|
|
19
|
+
def build_result: (Hash[Symbol, untyped] resource_info, **untyped attrs) -> Models::NodeOperationResult
|
|
20
|
+
def not_found_result: (String node_name) -> Models::NodeOperationResult
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class SetVm
|
|
4
|
+
def initialize: (vm_repository: untyped, ?options: Hash[Symbol, untyped]) -> void
|
|
5
|
+
def execute: (vmid: Integer, params: Hash[Symbol | String, untyped]) -> Models::VmOperationResult?
|
|
6
|
+
|
|
7
|
+
private
|
|
8
|
+
def compute_diff: (Hash[Symbol, untyped] config, Hash[Symbol | String, untyped] params) -> Hash[Symbol, untyped]
|
|
9
|
+
def build_update_params: (Hash[Symbol, untyped] changes, Hash[Symbol, untyped] original_config) -> Hash[Symbol, untyped]
|
|
10
|
+
def build_result: (Hash[Symbol, untyped] resource_info, **untyped attrs) -> Models::VmOperationResult
|
|
11
|
+
def not_found_result: (Integer vmid) -> Models::VmOperationResult
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class SetVolume
|
|
4
|
+
def initialize: (repository: untyped, resource_type: Symbol) -> void
|
|
5
|
+
def execute: (id: Integer, disk: String, params: Hash[String | Symbol, untyped], node: String) -> Models::VolumeOperationResult
|
|
6
|
+
|
|
7
|
+
private
|
|
8
|
+
def rebuild_disk_config: (String current_value, Hash[String | Symbol, untyped] updates) -> String
|
|
9
|
+
def build_result: (Integer id, String disk, String node, **untyped attrs) -> Models::VolumeOperationResult
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class Snapshot
|
|
4
|
+
DEFAULT_TIMEOUT: Integer
|
|
5
|
+
|
|
6
|
+
def initialize: (snapshot_repo: untyped, resource_resolver: untyped, task_repo: untyped, ?options: Hash[Symbol, untyped]) -> void
|
|
7
|
+
|
|
8
|
+
def list: (Array[Integer] vmids, ?node: String?) -> Array[Models::Snapshot]
|
|
9
|
+
|
|
10
|
+
def describe: (Array[Integer] vmids, String name, ?node: String?) -> Models::SnapshotDescription
|
|
11
|
+
|
|
12
|
+
def create: (Array[Integer] vmids, name: String, ?description: String?, ?vmstate: bool, ?node: String?) -> Array[Models::OperationResult]
|
|
13
|
+
|
|
14
|
+
def delete: (Array[Integer] vmids, String snapname, ?force: bool, ?node: String?) -> Array[Models::OperationResult]
|
|
15
|
+
|
|
16
|
+
def delete_all: (Array[Integer] vmids, ?node: String?, ?force: bool) -> Array[Models::OperationResult]
|
|
17
|
+
|
|
18
|
+
def rollback: (Integer vmid, String snapname, ?start: bool) -> Models::OperationResult
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
def resolve_resources: (Array[Integer] vmids) -> Array[Hash[Symbol, untyped]]
|
|
23
|
+
|
|
24
|
+
def filter_by_node: (Array[Hash[Symbol, untyped]] resources, String? node) -> Array[Hash[Symbol, untyped]]
|
|
25
|
+
|
|
26
|
+
def build_describe_entries: (Array[Hash[Symbol, untyped]] resources, String name) -> Array[Models::SnapshotDescription::Entry]
|
|
27
|
+
|
|
28
|
+
def execute_multi: (Array[Hash[Symbol, untyped]] resources, Symbol operation) { (Hash[Symbol, untyped]) -> String } -> Array[Models::OperationResult]
|
|
29
|
+
|
|
30
|
+
def execute_single: (Hash[Symbol, untyped] resource, Symbol operation) { () -> String } -> Models::OperationResult
|
|
31
|
+
|
|
32
|
+
def timeout: () -> Integer
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class TaskListing
|
|
4
|
+
def initialize: (task_list_repository: untyped, node_repository: untyped) -> void
|
|
5
|
+
|
|
6
|
+
def list: (?node: String?, ?vmid: Integer?, ?limit: Integer, ?since: String?, ?until_time: String?, ?type_filter: String?, ?status_filter: String?) -> Array[Models::TaskEntry]
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def list_all_nodes: (vmid: Integer?, limit: Integer, since: String?, until_time: String?, type_filter: String?, status_filter: String?) -> Array[Models::TaskEntry]
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class UnlinkDisk
|
|
4
|
+
def initialize: (repository: untyped) -> void
|
|
5
|
+
|
|
6
|
+
def execute: (vmid: Integer, node: String, disk_ids: Array[String] | String, ?force: bool) -> Models::VmOperationResult
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def build_result: (Integer vmid, String node, Array[String] | String disk_ids, bool force, **untyped attrs) -> Models::VmOperationResult
|
|
11
|
+
|
|
12
|
+
def fetch_vm: (Integer vmid) -> Models::Vm?
|
|
13
|
+
|
|
14
|
+
def format_disk_ids: (Array[String] | String disk_ids) -> String
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class VmLifecycle
|
|
4
|
+
SYNC_OPERATIONS: Array[Symbol]
|
|
5
|
+
ASYNC_OPERATIONS: Array[Symbol]
|
|
6
|
+
ALL_OPERATIONS: Array[Symbol]
|
|
7
|
+
DEFAULT_TIMEOUT: Integer
|
|
8
|
+
|
|
9
|
+
def initialize: (untyped vm_repository, untyped task_repository, ?Hash[Symbol, untyped] options) -> void
|
|
10
|
+
|
|
11
|
+
def execute: (Symbol operation, Array[Models::Vm] vms) -> Array[Models::VmOperationResult]
|
|
12
|
+
|
|
13
|
+
private
|
|
14
|
+
|
|
15
|
+
def execute_single: (Symbol operation, Models::Vm vm) -> Models::VmOperationResult
|
|
16
|
+
|
|
17
|
+
def call_api: (Symbol operation, Models::Vm vm) -> String
|
|
18
|
+
|
|
19
|
+
def sync_mode?: (Symbol operation) -> bool
|
|
20
|
+
|
|
21
|
+
def timeout: () -> Integer
|
|
22
|
+
|
|
23
|
+
def validate_operation!: (Symbol operation) -> void
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Services
|
|
3
|
+
class Wakeonlan
|
|
4
|
+
def initialize: (node_repository: Repositories::Node) -> void
|
|
5
|
+
|
|
6
|
+
def execute: (node_name: String) -> Models::NodeOperationResult
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def build_result: (Models::Node node, **untyped attrs) -> Models::NodeOperationResult
|
|
11
|
+
|
|
12
|
+
def not_found_result: (String node_name) -> Models::NodeOperationResult
|
|
13
|
+
|
|
14
|
+
def success_message: (String? mac) -> String
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Utils
|
|
3
|
+
class ResourceResolver
|
|
4
|
+
def initialize: (Connection connection) -> void
|
|
5
|
+
|
|
6
|
+
def resolve: (Integer | String vmid) -> Hash[Symbol, untyped]?
|
|
7
|
+
|
|
8
|
+
def resolve_multiple: (Array[Integer | String] vmids) -> Array[Hash[Symbol, untyped]]
|
|
9
|
+
|
|
10
|
+
def resolve_all: () -> Array[Hash[Symbol, untyped]]
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
def load_resources: () -> void
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Wizards
|
|
3
|
+
class CreateContainer
|
|
4
|
+
def initialize: (Hash[Symbol, untyped] options, Hash[Symbol, untyped] global_options, ?prompt: untyped) -> void
|
|
5
|
+
|
|
6
|
+
def run: () -> Hash[Symbol, untyped]?
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def create_default_prompt: () -> untyped
|
|
11
|
+
|
|
12
|
+
def collect_params: () -> Hash[Symbol, untyped]
|
|
13
|
+
|
|
14
|
+
def collect_rootfs: () -> Hash[Symbol, String]
|
|
15
|
+
|
|
16
|
+
def collect_mountpoints: () -> Array[Hash[Symbol, String]]?
|
|
17
|
+
|
|
18
|
+
def collect_nets: () -> Array[Hash[Symbol, String]]?
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Pvectl
|
|
2
|
+
module Wizards
|
|
3
|
+
class CreateVm
|
|
4
|
+
OS_TYPES: Array[String]
|
|
5
|
+
|
|
6
|
+
def initialize: (Hash[Symbol, untyped] options, Hash[Symbol, untyped] global_options, ?prompt: untyped) -> void
|
|
7
|
+
|
|
8
|
+
def run: () -> Hash[Symbol, untyped]?
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def create_default_prompt: () -> untyped
|
|
13
|
+
|
|
14
|
+
def collect_params: () -> Hash[Symbol, untyped]
|
|
15
|
+
|
|
16
|
+
def collect_disks: () -> Array[Hash[Symbol, String]]?
|
|
17
|
+
|
|
18
|
+
def collect_nets: () -> Array[Hash[Symbol, String]]?
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|