TUN-4847: Allow to list tunnels by prefix name or exclusion prefix name

This commit is contained in:
Nuno Diegues 2021-07-30 12:00:26 +01:00
parent fa8aa02270
commit 8527d03a29
2 changed files with 26 additions and 0 deletions

View File

@ -49,6 +49,16 @@ var (
Aliases: []string{"n"}, Aliases: []string{"n"},
Usage: "List tunnels with the given `NAME`", Usage: "List tunnels with the given `NAME`",
} }
listNamePrefixFlag = &cli.StringFlag{
Name: "name-prefix",
Aliases: []string{"np"},
Usage: "List tunnels that start with the give `NAME` prefix",
}
listExcludeNamePrefixFlag = &cli.StringFlag{
Name: "exclude-name-prefix",
Aliases: []string{"enp"},
Usage: "List tunnels whose `NAME` does not start with the given prefix",
}
listExistedAtFlag = &cli.TimestampFlag{ listExistedAtFlag = &cli.TimestampFlag{
Name: "when", Name: "when",
Aliases: []string{"w"}, Aliases: []string{"w"},
@ -217,6 +227,8 @@ func buildListCommand() *cli.Command {
outputFormatFlag, outputFormatFlag,
showDeletedFlag, showDeletedFlag,
listNameFlag, listNameFlag,
listNamePrefixFlag,
listExcludeNamePrefixFlag,
listExistedAtFlag, listExistedAtFlag,
listIDFlag, listIDFlag,
showRecentlyDisconnected, showRecentlyDisconnected,
@ -243,6 +255,12 @@ func listCommand(c *cli.Context) error {
if name := c.String("name"); name != "" { if name := c.String("name"); name != "" {
filter.ByName(name) filter.ByName(name)
} }
if namePrefix := c.String("name-prefix"); namePrefix != "" {
filter.ByNamePrefix(namePrefix)
}
if excludePrefix := c.String("exclude-name-prefix"); excludePrefix != "" {
filter.ExcludeNameWithPrefix(excludePrefix)
}
if existedAt := c.Timestamp("time"); existedAt != nil { if existedAt := c.Timestamp("time"); existedAt != nil {
filter.ByExistedAt(*existedAt) filter.ByExistedAt(*existedAt)
} }

View File

@ -25,6 +25,14 @@ func (f *Filter) ByName(name string) {
f.queryParams.Set("name", name) f.queryParams.Set("name", name)
} }
func (f *Filter) ByNamePrefix(namePrefix string) {
f.queryParams.Set("name_prefix", namePrefix)
}
func (f *Filter) ExcludeNameWithPrefix(excludePrefix string) {
f.queryParams.Set("exclude_prefix", excludePrefix)
}
func (f *Filter) NoDeleted() { func (f *Filter) NoDeleted() {
f.queryParams.Set("is_deleted", "false") f.queryParams.Set("is_deleted", "false")
} }