[pve-devel] [PATCH RFC 1/3] Resources: add new flag 'start'

Thomas Lamprecht t.lamprecht at proxmox.com
Tue Nov 15 04:55:20 CET 2016



On 11/14/2016 12:23 PM, Dietmar Maurer wrote:
> without any functionality for now.
>
> Signed-off-by: Dietmar Maurer <dietmar at proxmox.com>
> ---
>   src/PVE/HA/Config.pm          |  1 +
>   src/PVE/HA/Resources.pm       | 11 ++++++++++-
>   src/PVE/HA/Resources/PVECT.pm |  1 +
>   src/PVE/HA/Resources/PVEVM.pm |  1 +
>   src/PVE/HA/Sim/Hardware.pm    |  3 ++-
>   5 files changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/src/PVE/HA/Config.pm b/src/PVE/HA/Config.pm
> index 1802a7d..552cb1a 100644
> --- a/src/PVE/HA/Config.pm
> +++ b/src/PVE/HA/Config.pm
> @@ -98,6 +98,7 @@ sub read_and_check_resources_config {
>   	$d->{state} = 'enabled' if !defined($d->{state});
>   	$d->{max_restart} = 1 if !defined($d->{max_restart});
>   	$d->{max_relocate} = 1 if !defined($d->{max_relocate});
> +	$d->{start} = 1 if !defined($d->{start});
>   	if (PVE::HA::Resources->lookup($d->{type})) {
>   	    if (my $vmd = $vmlist->{ids}->{$name}) {
>   		if (!$vmd) {
> diff --git a/src/PVE/HA/Resources.pm b/src/PVE/HA/Resources.pm
> index 96d2f8f..5556ee4 100644
> --- a/src/PVE/HA/Resources.pm
> +++ b/src/PVE/HA/Resources.pm
> @@ -40,7 +40,16 @@ my $defaultData = {
>   	    optional => 1,
>   	    default => 1,
>   	    minimum => 0,
> -	},
> +        },
> +	start => {
> +	    type => 'boolean',
> +	    optional => 1,
> +	    default => 0,

default should here be 1? Does not affects functionality, but for code 
-> documentation consistence.

> +	    description => "Flag for marking a resource as not able to " .
> +		"start. This can be useful for Templates or also other " .
> +		"resources which should be recovered on failure but not " .
> +		"touched otherwise.",

Looking at patch 2 this not entirely true, we actively stop them as we 
place them in request_stop state.
So they get touched - if a VM is running an the start flag gets set to 
false we stop it.
The behaviour is OK for me, it just does not matches the description.

> +        },
>   	comment => {
>   	    description => "Description.",
>   	    type => 'string',
> diff --git a/src/PVE/HA/Resources/PVECT.pm b/src/PVE/HA/Resources/PVECT.pm
> index d1312ab..0fb8c9a 100644
> --- a/src/PVE/HA/Resources/PVECT.pm
> +++ b/src/PVE/HA/Resources/PVECT.pm
> @@ -29,6 +29,7 @@ sub options {
>   	comment => { optional => 1 },
>   	max_restart => { optional => 1 },
>   	max_relocate => { optional => 1 },
> +	start => { optional => 1 },
>       };
>   }
>   
> diff --git a/src/PVE/HA/Resources/PVEVM.pm b/src/PVE/HA/Resources/PVEVM.pm
> index 55d4368..7414544 100644
> --- a/src/PVE/HA/Resources/PVEVM.pm
> +++ b/src/PVE/HA/Resources/PVEVM.pm
> @@ -28,6 +28,7 @@ sub options {
>   	comment => { optional => 1 },
>   	max_restart => { optional => 1 },
>   	max_relocate => { optional => 1 },
> +	start => { optional => 1 },
>       };
>   }
>   
> diff --git a/src/PVE/HA/Sim/Hardware.pm b/src/PVE/HA/Sim/Hardware.pm
> index 383b10e..a722495 100644
> --- a/src/PVE/HA/Sim/Hardware.pm
> +++ b/src/PVE/HA/Sim/Hardware.pm
> @@ -100,9 +100,10 @@ sub read_service_config {
>   	} else {
>   	    die "implement me";
>   	}
> -	$d->{state} = 'disabled' if !$d->{state};
> +	$d->{state} = 'disabled' if !defined($d->{state});
>   	$d->{max_restart} = 1 if !defined($d->{max_restart});
>   	$d->{max_relocate} = 1 if !defined($d->{max_relocate});
> +	$d->{start} = 1 if !defined($d->{start});
>       }
>   
>       return $conf;





More information about the pve-devel mailing list