@homeflare/distilled-proxmox 0.3.1 → 0.3.3

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 (39) hide show
  1. package/README.md +27 -5
  2. package/dist/config-not-found.test.js +29 -0
  3. package/dist/config-not-found.test.js.map +1 -1
  4. package/dist/lxc-config-errors.test.d.ts +2 -0
  5. package/dist/lxc-config-errors.test.d.ts.map +1 -0
  6. package/dist/lxc-config-errors.test.js +48 -0
  7. package/dist/lxc-config-errors.test.js.map +1 -0
  8. package/dist/network-changes.test.d.ts +2 -0
  9. package/dist/network-changes.test.d.ts.map +1 -0
  10. package/dist/network-changes.test.js +42 -0
  11. package/dist/network-changes.test.js.map +1 -0
  12. package/dist/protocol.d.ts.map +1 -1
  13. package/dist/protocol.js +24 -9
  14. package/dist/protocol.js.map +1 -1
  15. package/dist/qemu-config-absence.test.d.ts +2 -0
  16. package/dist/qemu-config-absence.test.d.ts.map +1 -0
  17. package/dist/qemu-config-absence.test.js +41 -0
  18. package/dist/qemu-config-absence.test.js.map +1 -0
  19. package/dist/replication-firewall-errors.test.d.ts +2 -0
  20. package/dist/replication-firewall-errors.test.d.ts.map +1 -0
  21. package/dist/replication-firewall-errors.test.js +76 -0
  22. package/dist/replication-firewall-errors.test.js.map +1 -0
  23. package/dist/services/cluster.d.ts +25 -5
  24. package/dist/services/cluster.d.ts.map +1 -1
  25. package/dist/services/cluster.js +24 -5
  26. package/dist/services/cluster.js.map +1 -1
  27. package/dist/services/nodes.d.ts +44 -8
  28. package/dist/services/nodes.d.ts.map +1 -1
  29. package/dist/services/nodes.js +49 -8
  30. package/dist/services/nodes.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/config-not-found.test.ts +49 -0
  33. package/src/lxc-config-errors.test.ts +100 -0
  34. package/src/network-changes.test.ts +60 -0
  35. package/src/protocol.ts +26 -9
  36. package/src/qemu-config-absence.test.ts +75 -0
  37. package/src/replication-firewall-errors.test.ts +126 -0
  38. package/src/services/cluster.ts +51 -10
  39. package/src/services/nodes.ts +81 -16
@@ -32,6 +32,36 @@ declare const ClusterNodeUnreachable_base: S.Class<ClusterNodeUnreachable, S.Tag
32
32
  /** PVE forwarded this call to another cluster member and could not reach it (pveproxy/pvedaemon's own connection-failure status, not a standard HTTP code). Transient — the target node may be mid-reboot or between cluster-membership changes. */
33
33
  export declare class ClusterNodeUnreachable extends /*@__PURE__*/ ClusterNodeUnreachable_base {
34
34
  }
35
+ declare const LxcConfigNotFound_base: S.Class<LxcConfigNotFound, S.TaggedStruct<"LxcConfigNotFound", {
36
+ readonly message: any;
37
+ }>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
38
+ "@distilled.cloud/error/categories": {
39
+ BadRequestError: true;
40
+ };
41
+ });
42
+ /** The requested container config is absent on this node. VM IDs are cluster-wide: callers must still check whether another node or QEMU guest holds the ID before creating. Also raised by PUT (update_vm) and DELETE (destroy_vm), which both call the same load_config first. This GET requires VM.Audit on /vms/{vmid}; retain its credential for any permission-filtered cluster index read. */
43
+ export declare class LxcConfigNotFound extends /*@__PURE__*/ LxcConfigNotFound_base {
44
+ }
45
+ declare const QemuConfigNotFound_base: S.Class<QemuConfigNotFound, S.TaggedStruct<"QemuConfigNotFound", {
46
+ readonly message: any;
47
+ }>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
48
+ "@distilled.cloud/error/categories": {
49
+ BadRequestError: true;
50
+ };
51
+ });
52
+ /** qemu-server PVE/API2/Qemu.pm vm_config GET and destroy_vm both call QemuConfig->load_config. pve-guest-common AbstractConfig.pm load_config dies when the cfs file is missing: Configuration file '$cfspath' does not exist. QemuConfig's path is nodes/$node/qemu-server/$vmid.conf, HTTP 500. A missing file on this node is not a free cluster-wide vmid. */
53
+ export declare class QemuConfigNotFound extends /*@__PURE__*/ QemuConfigNotFound_base {
54
+ }
55
+ declare const NetworkInterfaceNotFound_base: S.Class<NetworkInterfaceNotFound, S.TaggedStruct<"NetworkInterfaceNotFound", {
56
+ readonly message: any;
57
+ }>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
58
+ "@distilled.cloud/error/categories": {
59
+ BadRequestError: true;
60
+ };
61
+ });
62
+ /** pve-manager 9.2.11, PVE/API2/Network.pm. GET (network_config) and PUT (update_network) both raise HTTP 400 with exactly errors.iface = interface does not exist -- verified against the live n2 source on 2026-09-25. DELETE (delete_network) raises it too but is left untyped: no generated deleteNodeNetwork2 caller exists yet. Only the exact sole-field detail is normalized for operation matching; all other validation errors remain ParameterVerificationFailed. Attached to GET and PUT. */
63
+ export declare class NetworkInterfaceNotFound extends /*@__PURE__*/ NetworkInterfaceNotFound_base {
64
+ }
35
65
  export interface CloneNodesLxcRequest {
36
66
  node: string;
37
67
  vmid: string;
@@ -4669,7 +4699,13 @@ export interface ListNodeNetworkResponseBodyItem {
4669
4699
  export declare const ListNodeNetworkResponseBodyItem: S.Schema<ListNodeNetworkResponseBodyItem>;
4670
4700
  export type ListNodeNetworkResponseBodyList = Array<ListNodeNetworkResponseBodyItem>;
4671
4701
  export declare const ListNodeNetworkResponseBodyList: S.Schema<ListNodeNetworkResponseBodyList>;
4672
- export type ListNodeNetworkResponse = ListNodeNetworkResponseBodyList;
4702
+ /** Present only when PVE staged an interfaces diff. The string can contain secrets. */
4703
+ export interface ListNodeNetworkPendingResponse {
4704
+ data: ListNodeNetworkResponseBodyList;
4705
+ changes: string;
4706
+ }
4707
+ export declare const ListNodeNetworkPendingResponse: S.Schema<ListNodeNetworkPendingResponse>;
4708
+ export type ListNodeNetworkResponse = ListNodeNetworkResponseBodyList | ListNodeNetworkPendingResponse;
4673
4709
  export declare const ListNodeNetworkResponse: S.Schema<ListNodeNetworkResponse>;
4674
4710
  export interface ListNodeQemuRequest {
4675
4711
  node: string;
@@ -7081,7 +7117,7 @@ export declare const deleteNodeDiskZfs: API.OperationMethod<DeleteNodeDiskZfsReq
7081
7117
  export type DeleteNodeFirewallRuleError = ProxmoxOpError;
7082
7118
  /** Delete rule. (root-privileged endpoint) */
7083
7119
  export declare const deleteNodeFirewallRule: API.OperationMethod<DeleteNodeFirewallRuleRequest, DeleteNodeFirewallRuleResponse, DeleteNodeFirewallRuleError, ProxmoxOpContext>;
7084
- export type DeleteNodeLxcError = ProxmoxOpError;
7120
+ export type DeleteNodeLxcError = LxcConfigNotFound | ProxmoxOpError;
7085
7121
  /** Destroy the container (also delete all uses files). (root-privileged endpoint) */
7086
7122
  export declare const deleteNodeLxc: API.OperationMethod<DeleteNodeLxcRequest, DeleteNodeLxcResponse, DeleteNodeLxcError, ProxmoxOpContext>;
7087
7123
  export type DeleteNodeLxcFirewallAliasError = ProxmoxOpError;
@@ -7105,7 +7141,7 @@ export declare const deleteNodeNetwork: API.OperationMethod<DeleteNodeNetworkReq
7105
7141
  export type DeleteNodeNetwork2Error = ProxmoxOpError;
7106
7142
  /** Delete network device configuration (root-privileged endpoint) */
7107
7143
  export declare const deleteNodeNetwork2: API.OperationMethod<DeleteNodeNetwork2Request, DeleteNodeNetwork2Response, DeleteNodeNetwork2Error, ProxmoxOpContext>;
7108
- export type DeleteNodeQemuError = ProxmoxOpError;
7144
+ export type DeleteNodeQemuError = QemuConfigNotFound | ProxmoxOpError;
7109
7145
  /** Destroy the VM and all used/owned volumes. Removes any VM specific permissions and firewall rules (root-privileged endpoint) */
7110
7146
  export declare const deleteNodeQemu: API.OperationMethod<DeleteNodeQemuRequest, DeleteNodeQemuResponse, DeleteNodeQemuError, ProxmoxOpContext>;
7111
7147
  export type DeleteNodeQemuFirewallAliasError = ProxmoxOpError;
@@ -7219,7 +7255,7 @@ export declare const getNodeHosts: API.OperationMethod<GetNodeHostsRequest, GetN
7219
7255
  export type GetNodeLxcError = ProxmoxOpError;
7220
7256
  /** Directory index */
7221
7257
  export declare const getNodeLxc: API.OperationMethod<GetNodeLxcRequest, GetNodeLxcResponse, GetNodeLxcError, ProxmoxOpContext>;
7222
- export type GetNodeLxcConfigError = ProxmoxOpError;
7258
+ export type GetNodeLxcConfigError = LxcConfigNotFound | ProxmoxOpError;
7223
7259
  /** Get container configuration. */
7224
7260
  export declare const getNodeLxcConfig: API.OperationMethod<GetNodeLxcConfigRequest, GetNodeLxcConfigResponse, GetNodeLxcConfigError, ProxmoxOpContext>;
7225
7261
  export type GetNodeLxcFeatureError = ProxmoxOpError;
@@ -7260,7 +7296,7 @@ export declare const getNodeLxcStatusCurrent: API.OperationMethod<GetNodeLxcStat
7260
7296
  export type GetNodeLxcVncwebsocketError = ProxmoxOpError;
7261
7297
  /** Opens a websocket for VNC traffic. */
7262
7298
  export declare const getNodeLxcVncwebsocket: API.OperationMethod<GetNodeLxcVncwebsocketRequest, GetNodeLxcVncwebsocketResponse, GetNodeLxcVncwebsocketError, ProxmoxOpContext>;
7263
- export type GetNodeNetworkError = ProxmoxOpError;
7299
+ export type GetNodeNetworkError = NetworkInterfaceNotFound | ProxmoxOpError;
7264
7300
  /** Read network device configuration */
7265
7301
  export declare const getNodeNetwork: API.OperationMethod<GetNodeNetworkRequest, GetNodeNetworkResponse, GetNodeNetworkError, ProxmoxOpContext>;
7266
7302
  export type GetNodeQemuError = ProxmoxOpError;
@@ -7308,7 +7344,7 @@ export declare const getNodeQemuAgentNetworkGetInterfaces: API.OperationMethod<G
7308
7344
  export type GetNodeQemuCloudinitDumpError = ProxmoxOpError;
7309
7345
  /** Get automatically generated cloudinit config. */
7310
7346
  export declare const getNodeQemuCloudinitDump: API.OperationMethod<GetNodeQemuCloudinitDumpRequest, GetNodeQemuCloudinitDumpResponse, GetNodeQemuCloudinitDumpError, ProxmoxOpContext>;
7311
- export type GetNodeQemuConfigError = ProxmoxOpError;
7347
+ export type GetNodeQemuConfigError = QemuConfigNotFound | ProxmoxOpError;
7312
7348
  /** Get the virtual machine configuration with pending configuration changes applied. Set the 'current' parameter to get the current configuration instead. */
7313
7349
  export declare const getNodeQemuConfig: API.OperationMethod<GetNodeQemuConfigRequest, GetNodeQemuConfigResponse, GetNodeQemuConfigError, ProxmoxOpContext>;
7314
7350
  export type GetNodeQemuFeatureError = ProxmoxOpError;
@@ -7745,7 +7781,7 @@ export declare const putNodeFirewallOptions: API.OperationMethod<PutNodeFirewall
7745
7781
  export type PutNodeFirewallRuleError = ProxmoxOpError;
7746
7782
  /** Modify rule data. (root-privileged endpoint) */
7747
7783
  export declare const putNodeFirewallRule: API.OperationMethod<PutNodeFirewallRuleRequest, PutNodeFirewallRuleResponse, PutNodeFirewallRuleError, ProxmoxOpContext>;
7748
- export type PutNodeLxcConfigError = ProxmoxOpError;
7784
+ export type PutNodeLxcConfigError = LxcConfigNotFound | ProxmoxOpError;
7749
7785
  /** Set container options. (root-privileged endpoint) */
7750
7786
  export declare const putNodeLxcConfig: API.OperationMethod<PutNodeLxcConfigRequest, PutNodeLxcConfigResponse, PutNodeLxcConfigError, ProxmoxOpContext>;
7751
7787
  export type PutNodeLxcFirewallAliasError = ProxmoxOpError;
@@ -7769,7 +7805,7 @@ export declare const putNodeLxcSnapshotConfig: API.OperationMethod<PutNodeLxcSna
7769
7805
  export type PutNodeNetworkError = ProxmoxOpError;
7770
7806
  /** Reload network configuration (root-privileged endpoint) */
7771
7807
  export declare const putNodeNetwork: API.OperationMethod<PutNodeNetworkRequest, PutNodeNetworkResponse, PutNodeNetworkError, ProxmoxOpContext>;
7772
- export type PutNodeNetwork2Error = ProxmoxOpError;
7808
+ export type PutNodeNetwork2Error = NetworkInterfaceNotFound | ProxmoxOpError;
7773
7809
  /** Update network device configuration (root-privileged endpoint) */
7774
7810
  export declare const putNodeNetwork2: API.OperationMethod<PutNodeNetwork2Request, PutNodeNetwork2Response, PutNodeNetwork2Error, ProxmoxOpContext>;
7775
7811
  export type PutNodeQemuCloudinitError = ProxmoxOpError;