-
Notifications
You must be signed in to change notification settings - Fork 186
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
David Christofas
committed
Nov 20, 2020
1 parent
0ea04c0
commit a979b66
Showing
3 changed files
with
67 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
Enhancement: add a version command to ocis | ||
|
||
The version command was only implemented in the extensions. | ||
This adds the version command to ocis to list all services in the ocis namespace. | ||
|
||
https://github.com/owncloud/ocis/pull/915 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
package command | ||
|
||
import ( | ||
"fmt" | ||
"os" | ||
|
||
"github.com/micro/cli/v2" | ||
mreg "github.com/micro/go-micro/v2/registry" | ||
tw "github.com/olekukonko/tablewriter" | ||
"github.com/owncloud/ocis/ocis-pkg/registry" | ||
"github.com/owncloud/ocis/ocis/pkg/config" | ||
"github.com/owncloud/ocis/ocis/pkg/register" | ||
) | ||
|
||
// VersionCommand is the entrypoint for the version command. | ||
func VersionCommand(cfg *config.Config) *cli.Command { | ||
return &cli.Command{ | ||
Name: "version", | ||
Usage: "Lists running services with version", | ||
Category: "Runtime", | ||
Action: func(c *cli.Context) error { | ||
reg := *registry.GetRegistry() | ||
serviceList, err := reg.ListServices() | ||
if err != nil { | ||
fmt.Println(fmt.Errorf("could not list services: %v", err)) | ||
return err | ||
} | ||
|
||
var services []*mreg.Service | ||
for _, s := range serviceList { | ||
s, err := reg.GetService(s.Name) | ||
if err != nil { | ||
fmt.Println(fmt.Errorf("could not get service: %v", err)) | ||
return err | ||
} | ||
services = append(services, s...) | ||
} | ||
|
||
if len(services) == 0 { | ||
fmt.Println("No running services found.") | ||
return nil | ||
} | ||
|
||
table := tw.NewWriter(os.Stdout) | ||
table.SetHeader([]string{"Version", "Address", "Id"}) | ||
table.SetAutoFormatHeaders(false) | ||
for _, s := range services { | ||
for _, n := range s.Nodes { | ||
table.Append([]string{s.Version, n.Address, n.Id}) | ||
} | ||
} | ||
table.Render() | ||
return nil | ||
}, | ||
} | ||
} | ||
|
||
func init() { | ||
register.AddCommand(VersionCommand) | ||
} |