[pve-devel] [PATCH common 2/2] schema: add pve-bridge-id option/format/pair

Thomas Lamprecht t.lamprecht at proxmox.com
Fri Apr 16 11:53:44 CEST 2021


On 13.04.21 14:16, Fabian Grünbichler wrote:
> for re-use in qemu-server/pve-container, which already have this option
> duplicated. the '-pair' is needed for remote migration, but can also be
> a nice addition to regular intra-cluster migration to lift the
> restriction of having identically named bridges.
> 

looks OK, one naming issue inline

> Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
> ---
>  src/PVE/JSONSchema.pm | 25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
> 
> diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm
> index f2ddb50..bf30b33 100644
> --- a/src/PVE/JSONSchema.pm
> +++ b/src/PVE/JSONSchema.pm
> @@ -82,6 +82,12 @@ register_standard_option('pve-storage-id', {
>      type => 'string', format => 'pve-storage-id',
>  });
>  
> +register_standard_option('pve-bridge-id', {
> +    description => "Bridge to attach guest network devices to.",
> +    type => 'string', format => 'pve-bridge-id',
> +    format_description => 'bridge',
> +});
> +
>  register_standard_option('pve-config-digest', {
>      description => 'Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications.',
>      type => 'string',
> @@ -193,6 +199,17 @@ sub parse_storage_id {
>      return parse_id($storeid, 'storage', $noerr);
>  }
>  
> +PVE::JSONSchema::register_format('pve-bridge-id', \&parse_bridge_id);
> +sub parse_bridge_id {
> +    my ($id, $noerr) = @_;
> +
> +    if ($id !~ m/^[-_.\w\d]+$/) {
> +	return undef if $noerr;
> +	die "invalid bridge ID '$id'\n";
> +    }
> +    return $id;
> +}
> +
>  PVE::JSONSchema::register_format('acme-plugin-id', \&parse_acme_plugin_id);
>  sub parse_acme_plugin_id {
>      my ($pluginid, $noerr) = @_;
> @@ -293,6 +310,14 @@ sub verify_storagepair {
>      my ($storagepair, $noerr) = @_;
>      return $verify_idpair->($storagepair, $noerr, 'pve-storage-id');
>  }
> +
> +# note: this only checks a single list entry
> +# when using a bridgepair-list map, you need to pass the full parameter to
> +# parse_idmap
> +register_format('bridgepair', \&verify_bridgepair);

pve-bridge-id vs. bridgepair seems slightly odd as syntax choice?

Why not `bridge-pair` or even `pve-bridge-pair`?

> +sub verify_bridgepair {
> +    my ($bridgepair, $noerr) = @_;
> +    return $verify_idpair->($bridgepair, $noerr, 'pve-bridge-id');
>  }
>  
>  register_format('mac-addr', \&pve_verify_mac_addr);
> 





More information about the pve-devel mailing list