X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fxds%2Fxds-cli.git;a=blobdiff_plain;f=cmd-misc.go;h=5470dffccffe867506f4940b4917002b529c0488;hp=1a5d6d478ceec900904304f904ef87c3db6d5fce;hb=3b5e82b55433fd49cfe0cd0349756e0c2e9a9c12;hpb=75416fe01aa98b53c57315a050fc58f0879a238d diff --git a/cmd-misc.go b/cmd-misc.go index 1a5d6d4..5470dff 100644 --- a/cmd-misc.go +++ b/cmd-misc.go @@ -1,9 +1,27 @@ +/* + * Copyright (C) 2017-2018 "IoT.bzh" + * Author Sebastien Douheret + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + package main import ( "fmt" - "github.com/iotbzh/xds-agent/lib/xaapiv1" + "gerrit.automotivelinux.org/gerrit/src/xds/xds-agent.git/lib/xaapiv1" "github.com/urfave/cli" ) @@ -25,6 +43,18 @@ func initCmdMisc(cmdDef *[]cli.Command) { }, }, }, + { + Name: "status", + Aliases: []string{"sts"}, + Usage: "Get XDS configuration status (including XDS server connection)", + Action: xdsStatus, + Flags: []cli.Flag{ + cli.BoolFlag{ + Name: "verbose, v", + Usage: "display verbose output", + }, + }, + }, }, }) } @@ -39,7 +69,8 @@ func xdsVersion(ctx *cli.Context) error { } writer := NewTableWriter() - fmt.Fprintln(writer, "Agent ID:\t", ver.Client.ID) + fmt.Fprintln(writer, "Agent:") + fmt.Fprintln(writer, " ID:\t", ver.Client.ID) v := ver.Client.Version if verbose { v += " (" + ver.Client.VersionGitTag + ")" @@ -50,7 +81,8 @@ func xdsVersion(ctx *cli.Context) error { } for _, svr := range ver.Server { - fmt.Fprintln(writer, "Server ID:\t", svr.ID) + fmt.Fprintln(writer, "Server:") + fmt.Fprintln(writer, " ID:\t", svr.ID) v = svr.Version if verbose { v += " (" + svr.VersionGitTag + ")" @@ -64,3 +96,23 @@ func xdsVersion(ctx *cli.Context) error { return nil } + +func xdsStatus(ctx *cli.Context) error { + cfg := xaapiv1.APIConfig{} + if err := XdsConfigGet(&cfg); err != nil { + return cli.NewExitError(err.Error(), 1) + } + + writer := NewTableWriter() + fmt.Fprintln(writer, "XDS Server:") + for _, svr := range cfg.Servers { + fmt.Fprintln(writer, " ID:\t", svr.ID) + fmt.Fprintln(writer, " URL:\t", svr.URL) + fmt.Fprintln(writer, " Connected:\t", svr.Connected) + fmt.Fprintln(writer, " Connection retry:\t", svr.ConnRetry) + fmt.Fprintln(writer, " Disabled:\t", svr.Disabled) + } + writer.Flush() + + return nil +}