[pve-devel] [PATCH common 2/2] schema: add pve-bridge-id option/format/pair
Fabian Grünbichler
f.gruenbichler at proxmox.com
Fri Apr 16 12:10:33 CEST 2021
On April 16, 2021 11:53 am, Thomas Lamprecht wrote:
> 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`?
mainly because of the pre-existing 'storagepair', but I am fine with
either (and also with changing storagepair - this series already touches
so many repos that change can be mixed in without extra churn I think).
same for the API parameter(s) (I recycled the existing 'targetstorage',
although I'd find 'target-FOO' more readable and I am also fine with
using that variant for the new API call for all parameters)
>
>> +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