Documentation and tests for hostlist syntax
Added this to a new top-level page for wwctl Closes #611 Signed-off-by: Jonathon Anderson <janderson@ciq.co>
This commit is contained in:
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- New documentation for the hostlist syntax. #611
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- The correct header is now displayed when `-al` flags are specified to overlay
|
- The correct header is now displayed when `-al` flags are specified to overlay
|
||||||
|
|||||||
37
pkg/hostlist/hostlist_test.go
Normal file
37
pkg/hostlist/hostlist_test.go
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
package hostlist
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
func Test_Single(t *testing.T) {
|
||||||
|
assert.Equal(t, []string{"node1"}, Expand([]string{"node1"}))
|
||||||
|
}
|
||||||
|
|
||||||
|
func Test_Multiple(t *testing.T) {
|
||||||
|
assert.Equal(t, []string{"node1", "node2"}, Expand([]string{"node1", "node2"}))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func Test_Range(t *testing.T) {
|
||||||
|
assert.Equal(t, []string{"node1", "node2"}, Expand([]string{"node[1-2]"}))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func Test_Internal_Comma(t *testing.T) {
|
||||||
|
assert.Equal(t, []string{"node1", "node2"}, Expand([]string{"node[1,2]"}))
|
||||||
|
}
|
||||||
|
|
||||||
|
func Test_Mixed_Range_Comma(t *testing.T) {
|
||||||
|
assert.Equal(t, []string{"node1", "node2", "node3"}, Expand([]string{"node[1,2-3]"}))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// not currently supported
|
||||||
|
//
|
||||||
|
// func Test_External_Comma(t *testing.T) {
|
||||||
|
// assert.Equal(t, []string{"node1", "node2"}, Expand([]string{"node1,node2"}))
|
||||||
|
// }
|
||||||
33
userdocs/contents/wwctl.rst
Normal file
33
userdocs/contents/wwctl.rst
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
============================
|
||||||
|
Controlling Warewulf (wwctl)
|
||||||
|
============================
|
||||||
|
|
||||||
|
Warewulf's command-line interface is based primarily around the
|
||||||
|
``wwctl`` command. This command has sub-commands for each major
|
||||||
|
component of Warewulf's functionality.
|
||||||
|
|
||||||
|
* ``configure`` configures external services that Warewulf depends on
|
||||||
|
* ``container`` configures containers (node images)
|
||||||
|
* ``kernel`` configures override kernels
|
||||||
|
* ``node`` manages nodes in the cluster
|
||||||
|
* ``profiles`` defines configuration which can be applied to multiple
|
||||||
|
nodes
|
||||||
|
* ``overlays`` manages nodes
|
||||||
|
* ``power`` turns nodes on and off
|
||||||
|
* ``ssh`` provides basic parallel ssh functionality
|
||||||
|
|
||||||
|
All of these subcommands (and their respective sub-subcommands) have
|
||||||
|
built-in help with either ``wwctl help`` or ``--help``.
|
||||||
|
|
||||||
|
Hostlists
|
||||||
|
=========
|
||||||
|
|
||||||
|
Many of the commands (e.g., ``wwctl node list`` support a "hostlist"
|
||||||
|
syntax for referring to multiple nodes at once. Hostlist expressions
|
||||||
|
support both ranges and comma-separated numerical lists.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
* ``node[1-2]`` expands to ``node1 node2``
|
||||||
|
* ``node[1,3]`` expands to ``node1 node3``
|
||||||
|
* ``node[1,5-6]`` expands to ``node1 node5 node6``
|
||||||
@@ -14,6 +14,7 @@ Welcome to the Warewulf User Guide!
|
|||||||
Control Server Setup <contents/setup>
|
Control Server Setup <contents/setup>
|
||||||
Warewulf Installation <contents/installation>
|
Warewulf Installation <contents/installation>
|
||||||
Warewulf Configuration <contents/configuration>
|
Warewulf Configuration <contents/configuration>
|
||||||
|
Controlling Warewulf (wwctl) <contents/wwctl>
|
||||||
Warewulf Initialization <contents/initialization>
|
Warewulf Initialization <contents/initialization>
|
||||||
Container Management <contents/containers>
|
Container Management <contents/containers>
|
||||||
Kernel Management <contents/kernel>
|
Kernel Management <contents/kernel>
|
||||||
|
|||||||
Reference in New Issue
Block a user