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.
Files changed (558) hide show
  1. checksums.yaml +7 -0
  2. data/.claude/rules/branch-before-changes.md +52 -0
  3. data/.claude/rules/documentation-updates.md +104 -0
  4. data/.claude/rules/git-workflow.md +84 -0
  5. data/.claude/rules/proxmox-api-docs.md +58 -0
  6. data/.claude/rules/rbs-signatures.md +80 -0
  7. data/.claude/rules/refactoring-as-design-option.md +35 -0
  8. data/.claude/scheduled_tasks.lock +1 -0
  9. data/.claude/settings.json +51 -0
  10. data/.mcp.json +8 -0
  11. data/.ruby-gemset +1 -0
  12. data/.ruby-version +1 -0
  13. data/CHANGELOG.md +138 -0
  14. data/CLAUDE.md +211 -0
  15. data/CODE_OF_CONDUCT.md +132 -0
  16. data/LICENSE.txt +21 -0
  17. data/README.md +143 -0
  18. data/Rakefile +8 -0
  19. data/docs/proxmox-api-update.sh +96 -0
  20. data/exe/pvectl +5 -0
  21. data/lib/pvectl/argv_preprocessor.rb +334 -0
  22. data/lib/pvectl/cli.rb +102 -0
  23. data/lib/pvectl/commands/apt.rb +389 -0
  24. data/lib/pvectl/commands/clone_container.rb +230 -0
  25. data/lib/pvectl/commands/clone_vm.rb +331 -0
  26. data/lib/pvectl/commands/cloudinit/command.rb +122 -0
  27. data/lib/pvectl/commands/cloudinit/dump.rb +94 -0
  28. data/lib/pvectl/commands/cloudinit/pending.rb +137 -0
  29. data/lib/pvectl/commands/cloudinit/regenerate.rb +79 -0
  30. data/lib/pvectl/commands/config/command.rb +65 -0
  31. data/lib/pvectl/commands/config/get_contexts.rb +68 -0
  32. data/lib/pvectl/commands/config/set_cluster.rb +103 -0
  33. data/lib/pvectl/commands/config/set_context.rb +136 -0
  34. data/lib/pvectl/commands/config/set_credentials.rb +181 -0
  35. data/lib/pvectl/commands/config/use_context.rb +69 -0
  36. data/lib/pvectl/commands/config/view.rb +67 -0
  37. data/lib/pvectl/commands/console.rb +93 -0
  38. data/lib/pvectl/commands/console_ct.rb +187 -0
  39. data/lib/pvectl/commands/console_vm.rb +187 -0
  40. data/lib/pvectl/commands/container_lifecycle_command.rb +77 -0
  41. data/lib/pvectl/commands/create_backup.rb +173 -0
  42. data/lib/pvectl/commands/create_container.rb +141 -0
  43. data/lib/pvectl/commands/create_resource_command.rb +244 -0
  44. data/lib/pvectl/commands/create_snapshot.rb +242 -0
  45. data/lib/pvectl/commands/create_vm.rb +267 -0
  46. data/lib/pvectl/commands/delete_backup.rb +139 -0
  47. data/lib/pvectl/commands/delete_command.rb +119 -0
  48. data/lib/pvectl/commands/delete_container.rb +30 -0
  49. data/lib/pvectl/commands/delete_snapshot.rb +248 -0
  50. data/lib/pvectl/commands/delete_vm.rb +127 -0
  51. data/lib/pvectl/commands/describe/command.rb +251 -0
  52. data/lib/pvectl/commands/edit_container.rb +56 -0
  53. data/lib/pvectl/commands/edit_dns.rb +149 -0
  54. data/lib/pvectl/commands/edit_hosts.rb +135 -0
  55. data/lib/pvectl/commands/edit_node.rb +54 -0
  56. data/lib/pvectl/commands/edit_resource_command.rb +180 -0
  57. data/lib/pvectl/commands/edit_vm.rb +154 -0
  58. data/lib/pvectl/commands/edit_volume.rb +189 -0
  59. data/lib/pvectl/commands/feature_command.rb +230 -0
  60. data/lib/pvectl/commands/feature_container.rb +21 -0
  61. data/lib/pvectl/commands/feature_vm.rb +94 -0
  62. data/lib/pvectl/commands/get/command.rb +360 -0
  63. data/lib/pvectl/commands/get/handlers/backups.rb +76 -0
  64. data/lib/pvectl/commands/get/handlers/capabilities.rb +107 -0
  65. data/lib/pvectl/commands/get/handlers/containers.rb +148 -0
  66. data/lib/pvectl/commands/get/handlers/disks.rb +107 -0
  67. data/lib/pvectl/commands/get/handlers/dns.rb +94 -0
  68. data/lib/pvectl/commands/get/handlers/hosts.rb +94 -0
  69. data/lib/pvectl/commands/get/handlers/nodes.rb +162 -0
  70. data/lib/pvectl/commands/get/handlers/services.rb +81 -0
  71. data/lib/pvectl/commands/get/handlers/snapshots.rb +97 -0
  72. data/lib/pvectl/commands/get/handlers/storage.rb +118 -0
  73. data/lib/pvectl/commands/get/handlers/subscription.rb +69 -0
  74. data/lib/pvectl/commands/get/handlers/tasks.rb +89 -0
  75. data/lib/pvectl/commands/get/handlers/templates.rb +175 -0
  76. data/lib/pvectl/commands/get/handlers/time.rb +118 -0
  77. data/lib/pvectl/commands/get/handlers/vms.rb +145 -0
  78. data/lib/pvectl/commands/get/handlers/volume.rb +134 -0
  79. data/lib/pvectl/commands/get/resource_handler.rb +63 -0
  80. data/lib/pvectl/commands/get/resource_registry.rb +18 -0
  81. data/lib/pvectl/commands/get/watch_loop.rb +129 -0
  82. data/lib/pvectl/commands/irreversible_command.rb +265 -0
  83. data/lib/pvectl/commands/logs/command.rb +275 -0
  84. data/lib/pvectl/commands/logs/handlers/journal.rb +46 -0
  85. data/lib/pvectl/commands/logs/handlers/syslog.rb +53 -0
  86. data/lib/pvectl/commands/logs/handlers/task_detail.rb +52 -0
  87. data/lib/pvectl/commands/logs/handlers/task_logs.rb +115 -0
  88. data/lib/pvectl/commands/logs/resource_handler.rb +46 -0
  89. data/lib/pvectl/commands/logs/resource_registry.rb +22 -0
  90. data/lib/pvectl/commands/migrate_command.rb +282 -0
  91. data/lib/pvectl/commands/migrate_container.rb +23 -0
  92. data/lib/pvectl/commands/migrate_vm.rb +122 -0
  93. data/lib/pvectl/commands/move_disk_command.rb +239 -0
  94. data/lib/pvectl/commands/move_disk_container.rb +21 -0
  95. data/lib/pvectl/commands/move_disk_vm.rb +127 -0
  96. data/lib/pvectl/commands/ping.rb +249 -0
  97. data/lib/pvectl/commands/pull.rb +342 -0
  98. data/lib/pvectl/commands/push.rb +352 -0
  99. data/lib/pvectl/commands/reset.rb +64 -0
  100. data/lib/pvectl/commands/resource_lifecycle_command.rb +277 -0
  101. data/lib/pvectl/commands/resource_registry.rb +73 -0
  102. data/lib/pvectl/commands/restart.rb +70 -0
  103. data/lib/pvectl/commands/restart_container.rb +18 -0
  104. data/lib/pvectl/commands/restore_backup.rb +236 -0
  105. data/lib/pvectl/commands/resume.rb +57 -0
  106. data/lib/pvectl/commands/rollback_snapshot.rb +228 -0
  107. data/lib/pvectl/commands/sendkey_vm.rb +205 -0
  108. data/lib/pvectl/commands/service.rb +293 -0
  109. data/lib/pvectl/commands/set_container.rb +50 -0
  110. data/lib/pvectl/commands/set_node.rb +52 -0
  111. data/lib/pvectl/commands/set_resource_command.rb +185 -0
  112. data/lib/pvectl/commands/set_vm.rb +136 -0
  113. data/lib/pvectl/commands/set_volume.rb +212 -0
  114. data/lib/pvectl/commands/shared_config_parsers.rb +126 -0
  115. data/lib/pvectl/commands/shared_flags.rb +155 -0
  116. data/lib/pvectl/commands/shutdown.rb +73 -0
  117. data/lib/pvectl/commands/shutdown_container.rb +18 -0
  118. data/lib/pvectl/commands/start.rb +79 -0
  119. data/lib/pvectl/commands/start_container.rb +18 -0
  120. data/lib/pvectl/commands/stop.rb +75 -0
  121. data/lib/pvectl/commands/stop_container.rb +18 -0
  122. data/lib/pvectl/commands/suspend.rb +64 -0
  123. data/lib/pvectl/commands/template_command.rb +205 -0
  124. data/lib/pvectl/commands/template_container.rb +27 -0
  125. data/lib/pvectl/commands/template_vm.rb +106 -0
  126. data/lib/pvectl/commands/top/command.rb +206 -0
  127. data/lib/pvectl/commands/top/handlers/containers.rb +61 -0
  128. data/lib/pvectl/commands/top/handlers/nodes.rb +61 -0
  129. data/lib/pvectl/commands/top/handlers/vms.rb +61 -0
  130. data/lib/pvectl/commands/top/resource_handler.rb +46 -0
  131. data/lib/pvectl/commands/top/resource_registry.rb +22 -0
  132. data/lib/pvectl/commands/unlink_disk_vm.rb +232 -0
  133. data/lib/pvectl/commands/vm_lifecycle_command.rb +77 -0
  134. data/lib/pvectl/commands/wakeonlan_node.rb +153 -0
  135. data/lib/pvectl/config/errors.rb +62 -0
  136. data/lib/pvectl/config/models/cluster.rb +180 -0
  137. data/lib/pvectl/config/models/context.rb +100 -0
  138. data/lib/pvectl/config/models/resolved_config.rb +171 -0
  139. data/lib/pvectl/config/models/user.rb +133 -0
  140. data/lib/pvectl/config/provider.rb +297 -0
  141. data/lib/pvectl/config/service.rb +300 -0
  142. data/lib/pvectl/config/store.rb +161 -0
  143. data/lib/pvectl/config/wizard.rb +309 -0
  144. data/lib/pvectl/config_serializer.rb +1034 -0
  145. data/lib/pvectl/connection/retry_handler.rb +161 -0
  146. data/lib/pvectl/connection.rb +157 -0
  147. data/lib/pvectl/console/terminal_session.rb +449 -0
  148. data/lib/pvectl/editor_session.rb +157 -0
  149. data/lib/pvectl/exit_codes.rb +43 -0
  150. data/lib/pvectl/formatters/base.rb +55 -0
  151. data/lib/pvectl/formatters/color_support.rb +90 -0
  152. data/lib/pvectl/formatters/json.rb +45 -0
  153. data/lib/pvectl/formatters/output_helper.rb +77 -0
  154. data/lib/pvectl/formatters/registry.rb +72 -0
  155. data/lib/pvectl/formatters/table.rb +235 -0
  156. data/lib/pvectl/formatters/wide.rb +93 -0
  157. data/lib/pvectl/formatters/yaml.rb +49 -0
  158. data/lib/pvectl/manifest_serializer.rb +142 -0
  159. data/lib/pvectl/models/apt_package.rb +107 -0
  160. data/lib/pvectl/models/backup.rb +173 -0
  161. data/lib/pvectl/models/base.rb +49 -0
  162. data/lib/pvectl/models/capability.rb +62 -0
  163. data/lib/pvectl/models/container.rb +205 -0
  164. data/lib/pvectl/models/container_operation_result.rb +27 -0
  165. data/lib/pvectl/models/dns_config.rb +54 -0
  166. data/lib/pvectl/models/hosts_file.rb +47 -0
  167. data/lib/pvectl/models/journal_entry.rb +16 -0
  168. data/lib/pvectl/models/network_interface.rb +85 -0
  169. data/lib/pvectl/models/node.rb +195 -0
  170. data/lib/pvectl/models/node_operation_result.rb +45 -0
  171. data/lib/pvectl/models/operation_result.rb +110 -0
  172. data/lib/pvectl/models/physical_disk.rb +193 -0
  173. data/lib/pvectl/models/service.rb +80 -0
  174. data/lib/pvectl/models/snapshot.rb +101 -0
  175. data/lib/pvectl/models/snapshot_description.rb +39 -0
  176. data/lib/pvectl/models/storage.rb +180 -0
  177. data/lib/pvectl/models/subscription.rb +87 -0
  178. data/lib/pvectl/models/syslog_entry.rb +17 -0
  179. data/lib/pvectl/models/task.rb +95 -0
  180. data/lib/pvectl/models/task_entry.rb +52 -0
  181. data/lib/pvectl/models/task_log_line.rb +17 -0
  182. data/lib/pvectl/models/time_config.rb +47 -0
  183. data/lib/pvectl/models/vm.rb +137 -0
  184. data/lib/pvectl/models/vm_operation_result.rb +27 -0
  185. data/lib/pvectl/models/volume.rb +133 -0
  186. data/lib/pvectl/models/volume_operation_result.rb +26 -0
  187. data/lib/pvectl/parsers/cloud_init_config.rb +92 -0
  188. data/lib/pvectl/parsers/disk_config.rb +97 -0
  189. data/lib/pvectl/parsers/lxc_mount_config.rb +98 -0
  190. data/lib/pvectl/parsers/lxc_net_config.rb +97 -0
  191. data/lib/pvectl/parsers/net_config.rb +95 -0
  192. data/lib/pvectl/parsers/smart_text.rb +42 -0
  193. data/lib/pvectl/plugin_loader.rb +157 -0
  194. data/lib/pvectl/presenters/apt_package.rb +99 -0
  195. data/lib/pvectl/presenters/backup.rb +128 -0
  196. data/lib/pvectl/presenters/base.rb +283 -0
  197. data/lib/pvectl/presenters/capability.rb +104 -0
  198. data/lib/pvectl/presenters/config/context.rb +80 -0
  199. data/lib/pvectl/presenters/container.rb +574 -0
  200. data/lib/pvectl/presenters/container_operation_result.rb +109 -0
  201. data/lib/pvectl/presenters/disk.rb +184 -0
  202. data/lib/pvectl/presenters/dns_config.rb +68 -0
  203. data/lib/pvectl/presenters/hosts_file.rb +61 -0
  204. data/lib/pvectl/presenters/journal_entry.rb +20 -0
  205. data/lib/pvectl/presenters/node.rb +762 -0
  206. data/lib/pvectl/presenters/node_operation_result.rb +50 -0
  207. data/lib/pvectl/presenters/operation_result.rb +61 -0
  208. data/lib/pvectl/presenters/service.rb +76 -0
  209. data/lib/pvectl/presenters/snapshot.rb +239 -0
  210. data/lib/pvectl/presenters/snapshot_operation_result.rb +125 -0
  211. data/lib/pvectl/presenters/storage.rb +329 -0
  212. data/lib/pvectl/presenters/subscription.rb +189 -0
  213. data/lib/pvectl/presenters/syslog_entry.rb +20 -0
  214. data/lib/pvectl/presenters/task_entry.rb +69 -0
  215. data/lib/pvectl/presenters/task_log_line.rb +20 -0
  216. data/lib/pvectl/presenters/template.rb +76 -0
  217. data/lib/pvectl/presenters/time_config.rb +86 -0
  218. data/lib/pvectl/presenters/top_container.rb +112 -0
  219. data/lib/pvectl/presenters/top_node.rb +115 -0
  220. data/lib/pvectl/presenters/top_presenter.rb +59 -0
  221. data/lib/pvectl/presenters/top_vm.rb +105 -0
  222. data/lib/pvectl/presenters/vm.rb +853 -0
  223. data/lib/pvectl/presenters/vm_operation_result.rb +109 -0
  224. data/lib/pvectl/presenters/volume.rb +136 -0
  225. data/lib/pvectl/presenters/volume_operation_result.rb +58 -0
  226. data/lib/pvectl/repositories/apt.rb +93 -0
  227. data/lib/pvectl/repositories/backup.rb +186 -0
  228. data/lib/pvectl/repositories/base.rb +110 -0
  229. data/lib/pvectl/repositories/capabilities.rb +96 -0
  230. data/lib/pvectl/repositories/container.rb +503 -0
  231. data/lib/pvectl/repositories/disk.rb +87 -0
  232. data/lib/pvectl/repositories/dns.rb +54 -0
  233. data/lib/pvectl/repositories/hosts.rb +63 -0
  234. data/lib/pvectl/repositories/journal.rb +23 -0
  235. data/lib/pvectl/repositories/node.rb +537 -0
  236. data/lib/pvectl/repositories/service.rb +139 -0
  237. data/lib/pvectl/repositories/snapshot.rb +133 -0
  238. data/lib/pvectl/repositories/storage.rb +302 -0
  239. data/lib/pvectl/repositories/subscription.rb +77 -0
  240. data/lib/pvectl/repositories/syslog.rb +25 -0
  241. data/lib/pvectl/repositories/task.rb +82 -0
  242. data/lib/pvectl/repositories/task_list.rb +30 -0
  243. data/lib/pvectl/repositories/task_log.rb +31 -0
  244. data/lib/pvectl/repositories/time_config.rb +53 -0
  245. data/lib/pvectl/repositories/vm.rb +616 -0
  246. data/lib/pvectl/repositories/volume.rb +306 -0
  247. data/lib/pvectl/selectors/base.rb +201 -0
  248. data/lib/pvectl/selectors/container.rb +116 -0
  249. data/lib/pvectl/selectors/disk.rb +59 -0
  250. data/lib/pvectl/selectors/vm.rb +116 -0
  251. data/lib/pvectl/selectors/volume.rb +59 -0
  252. data/lib/pvectl/services/backup.rb +209 -0
  253. data/lib/pvectl/services/clone_container.rb +260 -0
  254. data/lib/pvectl/services/clone_vm.rb +265 -0
  255. data/lib/pvectl/services/cloudinit.rb +96 -0
  256. data/lib/pvectl/services/console.rb +152 -0
  257. data/lib/pvectl/services/container_lifecycle.rb +124 -0
  258. data/lib/pvectl/services/create_container.rb +179 -0
  259. data/lib/pvectl/services/create_vm.rb +191 -0
  260. data/lib/pvectl/services/edit_container.rb +125 -0
  261. data/lib/pvectl/services/edit_dns.rb +159 -0
  262. data/lib/pvectl/services/edit_hosts.rb +78 -0
  263. data/lib/pvectl/services/edit_node.rb +147 -0
  264. data/lib/pvectl/services/edit_vm.rb +125 -0
  265. data/lib/pvectl/services/edit_volume.rb +224 -0
  266. data/lib/pvectl/services/get/resource_service.rb +98 -0
  267. data/lib/pvectl/services/move_disk.rb +132 -0
  268. data/lib/pvectl/services/pull_config.rb +94 -0
  269. data/lib/pvectl/services/push_config.rb +524 -0
  270. data/lib/pvectl/services/resize_volume.rb +253 -0
  271. data/lib/pvectl/services/resource_delete.rb +169 -0
  272. data/lib/pvectl/services/resource_migration.rb +170 -0
  273. data/lib/pvectl/services/sendkey.rb +108 -0
  274. data/lib/pvectl/services/service_lifecycle.rb +89 -0
  275. data/lib/pvectl/services/set_container.rb +128 -0
  276. data/lib/pvectl/services/set_node.rb +236 -0
  277. data/lib/pvectl/services/set_vm.rb +128 -0
  278. data/lib/pvectl/services/set_volume.rb +126 -0
  279. data/lib/pvectl/services/snapshot.rb +261 -0
  280. data/lib/pvectl/services/task_listing.rb +75 -0
  281. data/lib/pvectl/services/unlink_disk.rb +86 -0
  282. data/lib/pvectl/services/vm_lifecycle.rb +124 -0
  283. data/lib/pvectl/services/wakeonlan.rb +79 -0
  284. data/lib/pvectl/utils/resource_resolver.rb +80 -0
  285. data/lib/pvectl/version.rb +13 -0
  286. data/lib/pvectl/wizards/create_container.rb +105 -0
  287. data/lib/pvectl/wizards/create_vm.rb +98 -0
  288. data/lib/pvectl.rb +439 -0
  289. data/sig/external/gli.rbs +16 -0
  290. data/sig/external/proxmox_api.rbs +10 -0
  291. data/sig/pvectl/argv_preprocessor.rbs +53 -0
  292. data/sig/pvectl/cli.rbs +26 -0
  293. data/sig/pvectl/commands/apt.rbs +47 -0
  294. data/sig/pvectl/commands/clone_container.rbs +31 -0
  295. data/sig/pvectl/commands/clone_vm.rbs +33 -0
  296. data/sig/pvectl/commands/cloudinit/command.rbs +13 -0
  297. data/sig/pvectl/commands/cloudinit/dump.rbs +13 -0
  298. data/sig/pvectl/commands/cloudinit/pending.rbs +17 -0
  299. data/sig/pvectl/commands/cloudinit/regenerate.rbs +11 -0
  300. data/sig/pvectl/commands/config/command.rbs +9 -0
  301. data/sig/pvectl/commands/config/get_contexts.rbs +11 -0
  302. data/sig/pvectl/commands/config/set_cluster.rbs +11 -0
  303. data/sig/pvectl/commands/config/set_context.rbs +15 -0
  304. data/sig/pvectl/commands/config/set_credentials.rbs +15 -0
  305. data/sig/pvectl/commands/config/use_context.rbs +11 -0
  306. data/sig/pvectl/commands/config/view.rbs +11 -0
  307. data/sig/pvectl/commands/console.rbs +9 -0
  308. data/sig/pvectl/commands/console_ct.rbs +27 -0
  309. data/sig/pvectl/commands/console_vm.rbs +27 -0
  310. data/sig/pvectl/commands/container_lifecycle_command.rbs +25 -0
  311. data/sig/pvectl/commands/create_backup.rbs +29 -0
  312. data/sig/pvectl/commands/create_container.rbs +30 -0
  313. data/sig/pvectl/commands/create_resource_command.rbs +53 -0
  314. data/sig/pvectl/commands/create_snapshot.rbs +35 -0
  315. data/sig/pvectl/commands/create_vm.rbs +30 -0
  316. data/sig/pvectl/commands/delete_backup.rbs +25 -0
  317. data/sig/pvectl/commands/delete_command.rbs +45 -0
  318. data/sig/pvectl/commands/delete_container.rbs +11 -0
  319. data/sig/pvectl/commands/delete_snapshot.rbs +35 -0
  320. data/sig/pvectl/commands/delete_vm.rbs +13 -0
  321. data/sig/pvectl/commands/describe/command.rbs +27 -0
  322. data/sig/pvectl/commands/edit_container.rbs +17 -0
  323. data/sig/pvectl/commands/edit_dns.rbs +25 -0
  324. data/sig/pvectl/commands/edit_hosts.rbs +23 -0
  325. data/sig/pvectl/commands/edit_node.rbs +17 -0
  326. data/sig/pvectl/commands/edit_resource_command.rbs +35 -0
  327. data/sig/pvectl/commands/edit_vm.rbs +19 -0
  328. data/sig/pvectl/commands/edit_volume.rbs +24 -0
  329. data/sig/pvectl/commands/feature_command.rbs +43 -0
  330. data/sig/pvectl/commands/feature_container.rbs +10 -0
  331. data/sig/pvectl/commands/feature_vm.rbs +12 -0
  332. data/sig/pvectl/commands/get/command.rbs +42 -0
  333. data/sig/pvectl/commands/get/handlers/backups.rbs +23 -0
  334. data/sig/pvectl/commands/get/handlers/capabilities.rbs +29 -0
  335. data/sig/pvectl/commands/get/handlers/containers.rbs +35 -0
  336. data/sig/pvectl/commands/get/handlers/disks.rbs +27 -0
  337. data/sig/pvectl/commands/get/handlers/dns.rbs +25 -0
  338. data/sig/pvectl/commands/get/handlers/hosts.rbs +25 -0
  339. data/sig/pvectl/commands/get/handlers/nodes.rbs +33 -0
  340. data/sig/pvectl/commands/get/handlers/services.rbs +23 -0
  341. data/sig/pvectl/commands/get/handlers/snapshots.rbs +27 -0
  342. data/sig/pvectl/commands/get/handlers/storage.rbs +25 -0
  343. data/sig/pvectl/commands/get/handlers/subscription.rbs +25 -0
  344. data/sig/pvectl/commands/get/handlers/tasks.rbs +28 -0
  345. data/sig/pvectl/commands/get/handlers/templates.rbs +35 -0
  346. data/sig/pvectl/commands/get/handlers/time.rbs +29 -0
  347. data/sig/pvectl/commands/get/handlers/vms.rbs +35 -0
  348. data/sig/pvectl/commands/get/handlers/volume.rbs +27 -0
  349. data/sig/pvectl/commands/get/resource_handler.rbs +13 -0
  350. data/sig/pvectl/commands/get/resource_registry.rbs +8 -0
  351. data/sig/pvectl/commands/get/watch_loop.rbs +33 -0
  352. data/sig/pvectl/commands/irreversible_command.rbs +32 -0
  353. data/sig/pvectl/commands/logs/command.rbs +35 -0
  354. data/sig/pvectl/commands/logs/handlers/journal.rbs +21 -0
  355. data/sig/pvectl/commands/logs/handlers/syslog.rbs +21 -0
  356. data/sig/pvectl/commands/logs/handlers/task_detail.rbs +21 -0
  357. data/sig/pvectl/commands/logs/handlers/task_logs.rbs +35 -0
  358. data/sig/pvectl/commands/logs/resource_handler.rbs +11 -0
  359. data/sig/pvectl/commands/logs/resource_registry.rbs +8 -0
  360. data/sig/pvectl/commands/migrate_command.rbs +45 -0
  361. data/sig/pvectl/commands/migrate_container.rbs +11 -0
  362. data/sig/pvectl/commands/migrate_vm.rbs +13 -0
  363. data/sig/pvectl/commands/move_disk_command.rbs +43 -0
  364. data/sig/pvectl/commands/move_disk_container.rbs +11 -0
  365. data/sig/pvectl/commands/move_disk_vm.rbs +13 -0
  366. data/sig/pvectl/commands/ping.rbs +39 -0
  367. data/sig/pvectl/commands/pull.rbs +33 -0
  368. data/sig/pvectl/commands/push.rbs +32 -0
  369. data/sig/pvectl/commands/reset.rbs +11 -0
  370. data/sig/pvectl/commands/resource_lifecycle_command.rbs +55 -0
  371. data/sig/pvectl/commands/resource_registry.rbs +19 -0
  372. data/sig/pvectl/commands/restart.rbs +11 -0
  373. data/sig/pvectl/commands/restart_container.rbs +9 -0
  374. data/sig/pvectl/commands/restore_backup.rbs +27 -0
  375. data/sig/pvectl/commands/resume.rbs +11 -0
  376. data/sig/pvectl/commands/rollback_snapshot.rbs +31 -0
  377. data/sig/pvectl/commands/sendkey_vm.rbs +25 -0
  378. data/sig/pvectl/commands/service.rbs +38 -0
  379. data/sig/pvectl/commands/set_container.rbs +13 -0
  380. data/sig/pvectl/commands/set_node.rbs +13 -0
  381. data/sig/pvectl/commands/set_resource_command.rbs +25 -0
  382. data/sig/pvectl/commands/set_vm.rbs +15 -0
  383. data/sig/pvectl/commands/set_volume.rbs +24 -0
  384. data/sig/pvectl/commands/shared_config_parsers.rbs +19 -0
  385. data/sig/pvectl/commands/shared_flags.rbs +10 -0
  386. data/sig/pvectl/commands/shutdown.rbs +11 -0
  387. data/sig/pvectl/commands/shutdown_container.rbs +9 -0
  388. data/sig/pvectl/commands/start.rbs +11 -0
  389. data/sig/pvectl/commands/start_container.rbs +9 -0
  390. data/sig/pvectl/commands/stop.rbs +11 -0
  391. data/sig/pvectl/commands/stop_container.rbs +9 -0
  392. data/sig/pvectl/commands/suspend.rbs +11 -0
  393. data/sig/pvectl/commands/template_command.rbs +21 -0
  394. data/sig/pvectl/commands/template_container.rbs +10 -0
  395. data/sig/pvectl/commands/template_vm.rbs +12 -0
  396. data/sig/pvectl/commands/top/command.rbs +31 -0
  397. data/sig/pvectl/commands/top/handlers/containers.rbs +21 -0
  398. data/sig/pvectl/commands/top/handlers/nodes.rbs +21 -0
  399. data/sig/pvectl/commands/top/handlers/vms.rbs +21 -0
  400. data/sig/pvectl/commands/top/resource_handler.rbs +11 -0
  401. data/sig/pvectl/commands/top/resource_registry.rbs +8 -0
  402. data/sig/pvectl/commands/unlink_disk_vm.rbs +27 -0
  403. data/sig/pvectl/commands/vm_lifecycle_command.rbs +25 -0
  404. data/sig/pvectl/commands/wakeonlan_node.rbs +21 -0
  405. data/sig/pvectl/config/errors.rbs +24 -0
  406. data/sig/pvectl/config/models/cluster.rbs +39 -0
  407. data/sig/pvectl/config/models/context.rbs +23 -0
  408. data/sig/pvectl/config/models/resolved_config.rbs +51 -0
  409. data/sig/pvectl/config/models/user.rbs +31 -0
  410. data/sig/pvectl/config/provider.rbs +40 -0
  411. data/sig/pvectl/config/service.rbs +65 -0
  412. data/sig/pvectl/config/store.rbs +14 -0
  413. data/sig/pvectl/config/wizard.rbs +48 -0
  414. data/sig/pvectl/config_serializer.rbs +121 -0
  415. data/sig/pvectl/connection/retry_handler.rbs +31 -0
  416. data/sig/pvectl/connection.rbs +35 -0
  417. data/sig/pvectl/console/terminal_session.rbs +63 -0
  418. data/sig/pvectl/editor_session.rbs +33 -0
  419. data/sig/pvectl/exit_codes.rbs +19 -0
  420. data/sig/pvectl/formatters/base.rbs +13 -0
  421. data/sig/pvectl/formatters/color_support.rbs +13 -0
  422. data/sig/pvectl/formatters/json.rbs +7 -0
  423. data/sig/pvectl/formatters/output_helper.rbs +9 -0
  424. data/sig/pvectl/formatters/registry.rbs +13 -0
  425. data/sig/pvectl/formatters/table.rbs +25 -0
  426. data/sig/pvectl/formatters/wide.rbs +15 -0
  427. data/sig/pvectl/formatters/yaml.rbs +7 -0
  428. data/sig/pvectl/manifest_serializer.rbs +18 -0
  429. data/sig/pvectl/models/apt_package.rbs +26 -0
  430. data/sig/pvectl/models/backup.rbs +31 -0
  431. data/sig/pvectl/models/base.rbs +11 -0
  432. data/sig/pvectl/models/capability.rbs +16 -0
  433. data/sig/pvectl/models/container.rbs +44 -0
  434. data/sig/pvectl/models/container_operation_result.rbs +9 -0
  435. data/sig/pvectl/models/dns_config.rbs +15 -0
  436. data/sig/pvectl/models/hosts_file.rbs +13 -0
  437. data/sig/pvectl/models/journal_entry.rbs +10 -0
  438. data/sig/pvectl/models/network_interface.rbs +20 -0
  439. data/sig/pvectl/models/node.rbs +47 -0
  440. data/sig/pvectl/models/node_operation_result.rbs +12 -0
  441. data/sig/pvectl/models/operation_result.rbs +21 -0
  442. data/sig/pvectl/models/physical_disk.rbs +35 -0
  443. data/sig/pvectl/models/service.rbs +18 -0
  444. data/sig/pvectl/models/snapshot.rbs +21 -0
  445. data/sig/pvectl/models/snapshot_description.rbs +18 -0
  446. data/sig/pvectl/models/storage.rbs +39 -0
  447. data/sig/pvectl/models/subscription.rbs +24 -0
  448. data/sig/pvectl/models/syslog_entry.rbs +10 -0
  449. data/sig/pvectl/models/task.rbs +22 -0
  450. data/sig/pvectl/models/task_entry.rbs +24 -0
  451. data/sig/pvectl/models/task_log_line.rbs +10 -0
  452. data/sig/pvectl/models/time_config.rbs +12 -0
  453. data/sig/pvectl/models/vm.rbs +32 -0
  454. data/sig/pvectl/models/vm_operation_result.rbs +9 -0
  455. data/sig/pvectl/models/volume.rbs +29 -0
  456. data/sig/pvectl/models/volume_operation_result.rbs +9 -0
  457. data/sig/pvectl/parsers/cloud_init_config.rbs +15 -0
  458. data/sig/pvectl/parsers/disk_config.rbs +19 -0
  459. data/sig/pvectl/parsers/lxc_mount_config.rbs +19 -0
  460. data/sig/pvectl/parsers/lxc_net_config.rbs +19 -0
  461. data/sig/pvectl/parsers/net_config.rbs +19 -0
  462. data/sig/pvectl/parsers/smart_text.rbs +7 -0
  463. data/sig/pvectl/plugin_loader.rbs +25 -0
  464. data/sig/pvectl/presenters/apt_package.rbs +19 -0
  465. data/sig/pvectl/presenters/backup.rbs +25 -0
  466. data/sig/pvectl/presenters/base.rbs +41 -0
  467. data/sig/pvectl/presenters/capability.rbs +19 -0
  468. data/sig/pvectl/presenters/config/context.rbs +17 -0
  469. data/sig/pvectl/presenters/container.rbs +78 -0
  470. data/sig/pvectl/presenters/container_operation_result.rbs +19 -0
  471. data/sig/pvectl/presenters/disk.rbs +31 -0
  472. data/sig/pvectl/presenters/dns_config.rbs +13 -0
  473. data/sig/pvectl/presenters/hosts_file.rbs +13 -0
  474. data/sig/pvectl/presenters/journal_entry.rbs +11 -0
  475. data/sig/pvectl/presenters/node.rbs +118 -0
  476. data/sig/pvectl/presenters/node_operation_result.rbs +11 -0
  477. data/sig/pvectl/presenters/operation_result.rbs +17 -0
  478. data/sig/pvectl/presenters/service.rbs +15 -0
  479. data/sig/pvectl/presenters/snapshot.rbs +35 -0
  480. data/sig/pvectl/presenters/snapshot_operation_result.rbs +27 -0
  481. data/sig/pvectl/presenters/storage.rbs +59 -0
  482. data/sig/pvectl/presenters/subscription.rbs +36 -0
  483. data/sig/pvectl/presenters/syslog_entry.rbs +11 -0
  484. data/sig/pvectl/presenters/task_entry.rbs +21 -0
  485. data/sig/pvectl/presenters/task_log_line.rbs +11 -0
  486. data/sig/pvectl/presenters/template.rbs +15 -0
  487. data/sig/pvectl/presenters/time_config.rbs +19 -0
  488. data/sig/pvectl/presenters/top_container.rbs +17 -0
  489. data/sig/pvectl/presenters/top_node.rbs +17 -0
  490. data/sig/pvectl/presenters/top_presenter.rbs +13 -0
  491. data/sig/pvectl/presenters/top_vm.rbs +17 -0
  492. data/sig/pvectl/presenters/vm.rbs +91 -0
  493. data/sig/pvectl/presenters/vm_operation_result.rbs +19 -0
  494. data/sig/pvectl/presenters/volume.rbs +23 -0
  495. data/sig/pvectl/presenters/volume_operation_result.rbs +11 -0
  496. data/sig/pvectl/repositories/apt.rbs +17 -0
  497. data/sig/pvectl/repositories/backup.rbs +27 -0
  498. data/sig/pvectl/repositories/base.rbs +23 -0
  499. data/sig/pvectl/repositories/capabilities.rbs +20 -0
  500. data/sig/pvectl/repositories/container.rbs +63 -0
  501. data/sig/pvectl/repositories/disk.rbs +17 -0
  502. data/sig/pvectl/repositories/dns.rbs +13 -0
  503. data/sig/pvectl/repositories/hosts.rbs +13 -0
  504. data/sig/pvectl/repositories/journal.rbs +7 -0
  505. data/sig/pvectl/repositories/node.rbs +68 -0
  506. data/sig/pvectl/repositories/service.rbs +27 -0
  507. data/sig/pvectl/repositories/snapshot.rbs +19 -0
  508. data/sig/pvectl/repositories/storage.rbs +37 -0
  509. data/sig/pvectl/repositories/subscription.rbs +17 -0
  510. data/sig/pvectl/repositories/syslog.rbs +7 -0
  511. data/sig/pvectl/repositories/task.rbs +19 -0
  512. data/sig/pvectl/repositories/task_list.rbs +7 -0
  513. data/sig/pvectl/repositories/task_log.rbs +11 -0
  514. data/sig/pvectl/repositories/time_config.rbs +13 -0
  515. data/sig/pvectl/repositories/vm.rbs +85 -0
  516. data/sig/pvectl/repositories/volume.rbs +43 -0
  517. data/sig/pvectl/selectors/base.rbs +37 -0
  518. data/sig/pvectl/selectors/container.rbs +19 -0
  519. data/sig/pvectl/selectors/disk.rbs +13 -0
  520. data/sig/pvectl/selectors/vm.rbs +19 -0
  521. data/sig/pvectl/selectors/volume.rbs +13 -0
  522. data/sig/pvectl/services/backup.rbs +27 -0
  523. data/sig/pvectl/services/clone_container.rbs +35 -0
  524. data/sig/pvectl/services/clone_vm.rbs +35 -0
  525. data/sig/pvectl/services/cloudinit.rbs +19 -0
  526. data/sig/pvectl/services/console.rbs +23 -0
  527. data/sig/pvectl/services/container_lifecycle.rbs +26 -0
  528. data/sig/pvectl/services/create_container.rbs +64 -0
  529. data/sig/pvectl/services/create_vm.rbs +72 -0
  530. data/sig/pvectl/services/edit_container.rbs +17 -0
  531. data/sig/pvectl/services/edit_dns.rbs +23 -0
  532. data/sig/pvectl/services/edit_hosts.rbs +13 -0
  533. data/sig/pvectl/services/edit_node.rbs +21 -0
  534. data/sig/pvectl/services/edit_vm.rbs +17 -0
  535. data/sig/pvectl/services/edit_volume.rbs +18 -0
  536. data/sig/pvectl/services/get/resource_service.rbs +23 -0
  537. data/sig/pvectl/services/move_disk.rbs +21 -0
  538. data/sig/pvectl/services/pull_config.rbs +18 -0
  539. data/sig/pvectl/services/push_config.rbs +37 -0
  540. data/sig/pvectl/services/resize_volume.rbs +47 -0
  541. data/sig/pvectl/services/resource_delete.rbs +27 -0
  542. data/sig/pvectl/services/resource_migration.rbs +29 -0
  543. data/sig/pvectl/services/sendkey.rbs +19 -0
  544. data/sig/pvectl/services/service_lifecycle.rbs +17 -0
  545. data/sig/pvectl/services/set_container.rbs +14 -0
  546. data/sig/pvectl/services/set_node.rbs +23 -0
  547. data/sig/pvectl/services/set_vm.rbs +14 -0
  548. data/sig/pvectl/services/set_volume.rbs +12 -0
  549. data/sig/pvectl/services/snapshot.rbs +35 -0
  550. data/sig/pvectl/services/task_listing.rbs +13 -0
  551. data/sig/pvectl/services/unlink_disk.rbs +17 -0
  552. data/sig/pvectl/services/vm_lifecycle.rbs +26 -0
  553. data/sig/pvectl/services/wakeonlan.rbs +17 -0
  554. data/sig/pvectl/utils/resource_resolver.rbs +17 -0
  555. data/sig/pvectl/wizards/create_container.rbs +21 -0
  556. data/sig/pvectl/wizards/create_vm.rbs +21 -0
  557. data/sig/pvectl.rbs +9 -0
  558. metadata +675 -0
@@ -0,0 +1,11 @@
1
+ module Pvectl
2
+ module Presenters
3
+ class SyslogEntry < 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
+ end
10
+ end
11
+ end
@@ -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,11 @@
1
+ module Pvectl
2
+ module Presenters
3
+ class TaskLogLine < 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
+ end
10
+ end
11
+ 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,7 @@
1
+ module Pvectl
2
+ module Repositories
3
+ class Journal < Base
4
+ def list: (node: String, ?last_entries: Integer, ?since: Integer?, ?until_time: Integer?) -> Array[Models::JournalEntry]
5
+ end
6
+ end
7
+ 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