[pve-devel] [PATCH V4 pve-common] Extend the JSON format schema with pve_base_snapshot.
Wolfgang Bumiller
w.bumiller at proxmox.com
Tue Sep 12 10:32:13 CEST 2017
On Tue, Sep 12, 2017 at 08:41:54AM +0200, Wolfgang Link wrote:
> A base snapshot can be a replication snapshot or a normal snapshot.
> Normal snapshots use the format configid.
> ---
> src/PVE/JSONSchema.pm | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm
> index 3295599..501f0fa 100644
> --- a/src/PVE/JSONSchema.pm
> +++ b/src/PVE/JSONSchema.pm
> @@ -163,6 +163,20 @@ sub pve_verify_vmid {
> return $vmid;
> }
>
> +register_format('pve-base-snapshot', \&pve_base_snapshot);
> +sub pve_base_snapshot {
> + my ($base_snapshot, $noerr) = @_;
> +
> + if ($base_snapshot !~ m/^__replicate_[1-9]\d\d+\-\d+_\d+__$/i) {
> + # We use configid as snapshot name in qemu and lxc.
We also limit it to a length of 40, though.
Currently QemuServer.pm defines a standard option named
'pve-snapshot-name' and LXC/Config.pm defines a 'pve-lxc-snapshot-name'
option. Both are the same.
I'd rather have both a 'pve-snapshot-name' format as well as the
standard option in pve-common's JSONSchema.pm. The option would simply
use the format, and the 'pve-base-snapshot' format introduced here would
then call the ve-snapshot-name's format verifier instead of the one of
pve_verify_configid() in its fallback.
qemu-server & pve-container should then drop their own standard option
and use the common one, along with pve-storage.
> + $base_snapshot = PVE::JSONSchema::pve_verify_configid($base_snapshot, $noerr);
> + }
> + die "value does not look like a valid base snapshot\n"
> + if !defined($base_snapshot) && $noerr;
> +
> + return $base_snapshot;
> +}
> +
> register_format('pve-node', \&pve_verify_node_name);
> sub pve_verify_node_name {
> my ($node, $noerr) = @_;
> --
> 2.11.0
More information about the pve-devel
mailing list