On Wed, 2019-08-28 at 15:38 -0700, Scargall, Steve wrote:
Thanks for the clarification. I have a much better understanding
now.
Updating the ndctl-create-namespace man page to clarify what '
--region=all' does and does not do in combination with other arguments
and options would be beneficial. This would actually provide a more
immediate solution to the problem. It sounds like the general
statement used in the other man pages can remain? Or are there other
exceptions?
Yep I have a patch clarifying the --region option for create-namespace.
'all' is used in two ways, --<object>=all or ndctl-<action> all.
The former acts as a filter, where as the latter acts as a "act on all"
directive.
So 'ndctl disable-namespace --region=region0 all' disables all
namespaces on region0, where as
'ndctl disable-namespace --region=all all' is the same as omitting the
--region option (while still acceptable syntax), and acts on all
namespaces regardless of the region.
With the proposed implementation that bails out on first error, `
--continue` seems reasonable vs. `--greedy`. What do you think about
`--all-regions` instead? It is more meaningful towards its intended
action or use-case, but would it cause confusion with `
--regions=all`? Documentation could provide the solution here. We
would have to choose an arbitrary short option since `-a` and `-r` are
already taken.
I prefer --continue/-c since it automatically extends to buses as well.
As a result, with these changes, 'ndctl create-namespace -c' will create
namespaces on all possible regions on all possible buses.
Whatever the final decision, we should test for and return a usage
error for a mutually exclusive set of inputs, i.e. `ndctl create-
namespace --all-regions --region=region0` doesn't make sense - either
you want to perform the create operation on all regions or only in
region0.
With --continue this isn't a big problem as the --region restriction
will render the --continue meaningless.