all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH pve-manager v3 0/2] api: add return schemas
@ 2025-10-02 12:47 Nicolas Frey
  2025-10-02 12:47 ` [pve-devel] [PATCH pve-manager v3 1/2] api: add APT versions return schema Nicolas Frey
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Nicolas Frey @ 2025-10-02 12:47 UTC (permalink / raw)
  To: pve-devel

Changes since v2, thanks to @Thomas Lamprecht:
* clone $apt_package_return_props rather than modifying hash ref
* touch up on replication api return props by adding guest, jobnum
  and digest properties

Nicolas Frey (2):
  api: add APT versions return schema
  api: add replication config read return schema

 PVE/API2/APT.pm               | 114 ++++++++++++++++++++--------------
 PVE/API2/ReplicationConfig.pm |  22 ++++++-
 2 files changed, 88 insertions(+), 48 deletions(-)

-- 
2.47.3


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [pve-devel] [PATCH pve-manager v3 1/2] api: add APT versions return schema
  2025-10-02 12:47 [pve-devel] [PATCH pve-manager v3 0/2] api: add return schemas Nicolas Frey
@ 2025-10-02 12:47 ` Nicolas Frey
  2025-10-02 12:47 ` [pve-devel] [PATCH pve-manager v3 2/2] api: add replication config read " Nicolas Frey
  2025-10-03 12:58 ` [pve-devel] applied: [PATCH pve-manager v3 0/2] api: add return schemas Thomas Lamprecht
  2 siblings, 0 replies; 4+ messages in thread
From: Nicolas Frey @ 2025-10-02 12:47 UTC (permalink / raw)
  To: pve-devel

The Arch property now includes all officially supported debian
Architectures [0]. These could be extended to include unofficial
ones as well, though I don't see a reason to currently do this.
The CurrentState property now includes all variants according to
the documentation of package AptPkg::Cache.

Also implemented suggestion to clone $apt_package_return_props
instead of modifying, which could've potentially resulted in
unwanted behaviour.

[0] https://wiki.debian.org/SupportedArchitectures

Signed-off-by: Nicolas Frey <n.frey@proxmox.com>
---
 PVE/API2/APT.pm | 114 +++++++++++++++++++++++++++++-------------------
 1 file changed, 68 insertions(+), 46 deletions(-)

diff --git a/PVE/API2/APT.pm b/PVE/API2/APT.pm
index 0d07cf38..fdc9f622 100644
--- a/PVE/API2/APT.pm
+++ b/PVE/API2/APT.pm
@@ -200,6 +200,52 @@ my $update_pve_pkgstatus = sub {
     return $pkglist;
 };
 
+my $apt_package_return_props = {
+    Arch => {
+        type => 'string',
+        description => 'Package Architecture.',
+        enum => [qw(armhf arm64 amd64 ppc64el risc64 s390x)],
+    },
+    Description => {
+        type => 'string',
+        description => 'Package description.',
+    },
+    NotifyStatus => {
+        type => 'string',
+        description => 'Version for which PVE has already sent an update notification for.',
+        optional => 1,
+    },
+    OldVersion => {
+        type => 'string',
+        description => 'Old version currently installed.',
+        optional => 1,
+    },
+    Origin => {
+        type => 'string',
+        description => "Package origin, e.g., 'Proxmox' or 'Debian'.",
+    },
+    Package => {
+        type => 'string',
+        description => 'Package name.',
+    },
+    Priority => {
+        type => 'string',
+        description => 'Package priority.',
+    },
+    Section => {
+        type => 'string',
+        description => 'Package section.',
+    },
+    Title => {
+        type => 'string',
+        description => 'Package title.',
+    },
+    Version => {
+        type => 'string',
+        description => 'New version to be updated to.',
+    },
+};
+
 __PACKAGE__->register_method({
     name => 'list_updates',
     path => 'update',
@@ -220,51 +266,7 @@ __PACKAGE__->register_method({
         type => "array",
         items => {
             type => "object",
-            properties => {
-                'Arch' => {
-                    type => 'string',
-                    description => 'Package Architecture.',
-                },
-                'Description' => {
-                    type => 'string',
-                    description => 'Human-readable package description.',
-                },
-                'NotifyStatus' => {
-                    type => 'string',
-                    description =>
-                        'Version for which PVE has already sent an update notification for.',
-                    optional => 1,
-                },
-                'OldVersion' => {
-                    type => 'string',
-                    description => 'Old version currently installed.',
-                    optional => 1,
-                },
-                'Origin' => {
-                    type => 'string',
-                    description => 'Package origin.',
-                },
-                'Package' => {
-                    type => 'string',
-                    description => 'Package name.',
-                },
-                'Priority' => {
-                    type => 'string',
-                    description => 'Package priority in human-readable form.',
-                },
-                'Section' => {
-                    type => 'string',
-                    description => 'Package section.',
-                },
-                'Title' => {
-                    type => 'string',
-                    description => 'Package title.',
-                },
-                'Version' => {
-                    type => 'string',
-                    description => 'New version to be updated to.',
-                },
-            },
+            properties => $apt_package_return_props,
         },
     },
     code => sub {
@@ -788,7 +790,27 @@ __PACKAGE__->register_method({
         type => "array",
         items => {
             type => "object",
-            properties => {},
+                properties => {
+                    $apt_package_return_props->%*,
+                    CurrentState => {
+                        type => 'string',
+                        description => 'Current state of the package installed on the system.',
+                        # Possible CurrentState variants according to AptPkg::Cache
+                        enum => [
+                        qw(Installed NotInstalled UnPacked HalfConfigured HalfInstalled ConfigFiles)
+                        ],
+                    },
+                    RunningKernel => {
+                        type => 'string',
+                        description => "Kernel release, only for package 'proxmox-ve'.",
+                        optional => 1,
+                    },
+                    ManagerVersion => {
+                        type => 'string',
+                        description => "Version of the currently running pve-manager API server.",
+                        optional => 1,
+                    },
+                }
         },
     },
     code => sub {
-- 
2.47.3


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [pve-devel] [PATCH pve-manager v3 2/2] api: add replication config read return schema
  2025-10-02 12:47 [pve-devel] [PATCH pve-manager v3 0/2] api: add return schemas Nicolas Frey
  2025-10-02 12:47 ` [pve-devel] [PATCH pve-manager v3 1/2] api: add APT versions return schema Nicolas Frey
@ 2025-10-02 12:47 ` Nicolas Frey
  2025-10-03 12:58 ` [pve-devel] applied: [PATCH pve-manager v3 0/2] api: add return schemas Thomas Lamprecht
  2 siblings, 0 replies; 4+ messages in thread
From: Nicolas Frey @ 2025-10-02 12:47 UTC (permalink / raw)
  To: pve-devel

The return props now include programmatically added properties guest,
jobnum, and digest (the latter only being returned in read endpoint)
in addition to the create schema.

Signed-off-by: Nicolas Frey <n.frey@proxmox.com>
---
 PVE/API2/ReplicationConfig.pm | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/PVE/API2/ReplicationConfig.pm b/PVE/API2/ReplicationConfig.pm
index 307ebe69..d62caa2a 100644
--- a/PVE/API2/ReplicationConfig.pm
+++ b/PVE/API2/ReplicationConfig.pm
@@ -17,6 +17,18 @@ use PVE::API2::Replication;
 
 use base qw(PVE::RESTHandler);
 
+my $replication_api_return_props = {
+    PVE::ReplicationConfig->createSchema()->{properties}->%*,
+    guest => {
+        type => 'integer',
+        description => 'Guest ID.',
+    },
+    jobnum => {
+        type => 'integer',
+        description => 'Unique, sequential ID assigned to each job.',
+    },
+};
+
 __PACKAGE__->register_method({
     name => 'index',
     path => '',
@@ -35,7 +47,7 @@ __PACKAGE__->register_method({
         type => 'array',
         items => {
             type => "object",
-            properties => {},
+            properties => $replication_api_return_props,
         },
         links => [{ rel => 'child', href => "{id}" }],
     },
@@ -75,7 +87,13 @@ __PACKAGE__->register_method({
             id => get_standard_option('pve-replication-id'),
         },
     },
-    returns => { type => 'object' },
+    returns => {
+        type => "object",
+        properties => {
+            $replication_api_return_props->%*,
+            digest => get_standard_option('pve-config-digest'),
+        },
+    },
     code => sub {
         my ($param) = @_;
 
-- 
2.47.3


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [pve-devel] applied: [PATCH pve-manager v3 0/2] api: add return schemas
  2025-10-02 12:47 [pve-devel] [PATCH pve-manager v3 0/2] api: add return schemas Nicolas Frey
  2025-10-02 12:47 ` [pve-devel] [PATCH pve-manager v3 1/2] api: add APT versions return schema Nicolas Frey
  2025-10-02 12:47 ` [pve-devel] [PATCH pve-manager v3 2/2] api: add replication config read " Nicolas Frey
@ 2025-10-03 12:58 ` Thomas Lamprecht
  2 siblings, 0 replies; 4+ messages in thread
From: Thomas Lamprecht @ 2025-10-03 12:58 UTC (permalink / raw)
  To: pve-devel, Nicolas Frey

On Thu, 02 Oct 2025 14:47:26 +0200, Nicolas Frey wrote:
> Changes since v2, thanks to @Thomas Lamprecht:
> * clone $apt_package_return_props rather than modifying hash ref
> * touch up on replication api return props by adding guest, jobnum
>   and digest properties
> 
> Nicolas Frey (2):
>   api: add APT versions return schema
>   api: add replication config read return schema
> 
> [...]

Applied, thanks!

[1/2] api: add APT versions return schema
      commit: 6deba095c5f0aa4b4673d89be53a9d461b908f16
[2/2] api: add replication config read return schema
      commit: 65a80884b038a819334c8a1d988afd64b1b9fb89


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-10-03 12:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-10-02 12:47 [pve-devel] [PATCH pve-manager v3 0/2] api: add return schemas Nicolas Frey
2025-10-02 12:47 ` [pve-devel] [PATCH pve-manager v3 1/2] api: add APT versions return schema Nicolas Frey
2025-10-02 12:47 ` [pve-devel] [PATCH pve-manager v3 2/2] api: add replication config read " Nicolas Frey
2025-10-03 12:58 ` [pve-devel] applied: [PATCH pve-manager v3 0/2] api: add return schemas Thomas Lamprecht

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal