ClusterLabs / ClusterLabs/pcs

[booth] `pcs booth ticket add` shall be accompanied with native validation

Open
#240 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
265
Forks
122
Avg merge
13h 23m
Merged PRs (30d)
14

Description

Pcs currently allows for invalid configuration for booth to be
generated, such as when (under simplification) `expire` period
is lower than or equal to 110 (see `boothd(8)`), resulting in:

> Jan 09 17:10:21 virt-184 booth: [13184]: error: TICKET02: total amount of time to retry sending packets cannot exceed renewal frequency (5000*(10+1) >= 50000)
> Jan 09 17:10:21 virt-184 booth: [13184]: error: in config file line 8

The suggested way to address that on `pcs` side:

1. working generated contents of configuration file is output
to a side, temporary and possibly persistence-unbacked location
(`/run/pcs/booth/virt-184/booth-booth.conf` for instance)

2. actual validation by booth is performed like this:

```
booth status -c /run/pcs/booth/virt-184/booth-booth-FDs3k.conf
```

3. the only complication possible -- the above may be launched on
node that is not currently in possesion of cluster-wide
`booth-booth-ip` resource (or equivalent), hence this would be
shown as an error, resulting in exit status of `1`:

```
Jan 09 17:43:17 virt-184 booth: [16750]: error: Cannot find myself in the configuration.
```

to workaround this, a cheap trick -- inject localhost address(es) --
could be applied; note that it's important to inject it in a way
that the resulting number of the actors will be odd, so e.g.,
add:

```
site = 127.0.0.1
site = 127.0.0.2
```

of course, this addition would need to be undone again when
the configuration as such passes, removing the working file
(`/run/pcs/booth/virt-184/booth-booth-FDs3k.conf`) behind

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.