Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 17 additions & 21 deletions pkg/cli/cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,13 @@ type CVDRemoteCommand struct {
}

const (
serviceFlag = "service"
hostFlag = "host"
serviceURLFlag = "service_url"
zoneFlag = "zone"
proxyFlag = "proxy"
verboseFlag = "verbose"
serviceFlag = "service"
hostFlag = "host"
serviceURLFlag = "service_url"
zoneFlag = "zone"
proxyFlag = "proxy"
verboseFlag = "verbose"
skipConfirmationFlag = "yes"
)

const (
Expand Down Expand Up @@ -147,8 +148,9 @@ type AsArgs interface {
}

type RootFlags struct {
Service string
Verbose bool
Service string
Verbose bool
SkipConfirmation bool
}

type ServiceFlags struct {
Expand Down Expand Up @@ -244,8 +246,7 @@ type SnapshotCVDFlags struct {

type ResetHostFlags struct {
*ServiceFlags
Host string
SkipConfirmation bool
Host string
}

type subCommandOpts struct {
Expand All @@ -257,9 +258,8 @@ type subCommandOpts struct {

type ConnectFlags struct {
*ServiceFlags
host string
group string
skipConfirmation bool
host string
group string
// Path to file containing the ICE configuration to be used in the underlaying WebRTC connection.
ice_config string
connectAgent string
Expand Down Expand Up @@ -467,6 +467,7 @@ func NewCVDRemoteCommand(o *CommandOptions) *CVDRemoteCommand {
// Do not show a `help` command, users have always the `-h` and `--help` flags for help purpose.
rootCmd.SetHelpCommand(&cobra.Command{Hidden: true})
rootCmd.PersistentFlags().BoolVarP(&flags.Verbose, verboseFlag, "v", false, "Be verbose.")
rootCmd.PersistentFlags().BoolVarP(&flags.SkipConfirmation, skipConfirmationFlag, "y", false, "Skip confirmation")
subCmdOpts := &subCommandOpts{
ServiceFlags: flags,
InitialConfig: o.InitialConfig,
Expand Down Expand Up @@ -815,12 +816,11 @@ func resetCommand(opts *subCommandOpts) *cobra.Command {
}
reset.Flags().StringVar(&resetFlags.Host, hostFlag, "", "Host name")
reset.MarkFlagRequired(hostFlag)
reset.Flags().BoolVarP(&resetFlags.SkipConfirmation, "yes", "y", false, "Skip confirmation")
return reset
}

func connectionCommands(opts *subCommandOpts) []*cobra.Command {
connFlags := &ConnectFlags{ServiceFlags: opts.ServiceFlags, host: "", skipConfirmation: false}
connFlags := &ConnectFlags{ServiceFlags: opts.ServiceFlags, host: ""}
return []*cobra.Command{
connectCommand(connFlags, opts),
disconnectCommand(connFlags, opts),
Expand All @@ -840,8 +840,6 @@ func connectCommand(connFlags *ConnectFlags, opts *subCommandOpts) *cobra.Comman
}
connect.Flags().StringVar(&connFlags.host, hostFlag, "", "Specifies the host")
connect.Flags().StringVar(&connFlags.group, groupFlag, "", "Instances group name")
connect.Flags().BoolVarP(&connFlags.skipConfirmation, "yes", "y", false,
"Don't ask for confirmation for closing multiple connections.")
connect.Flags().StringVar(&connFlags.ice_config, iceConfigFlag, "", iceConfigFlagDesc)
connect.Flags().StringVar(&connFlags.connectAgent, connectAgentFlag, opts.InitialConfig.DefaultService().ConnectAgent, "Connect agent type")
return connect
Expand All @@ -858,8 +856,6 @@ func disconnectCommand(connFlags *ConnectFlags, opts *subCommandOpts) *cobra.Com
}
disconnect.Flags().StringVar(&connFlags.host, hostFlag, "", "Specifies the host")
disconnect.Flags().StringVar(&connFlags.group, groupFlag, "", "Instances group name")
disconnect.Flags().BoolVarP(&connFlags.skipConfirmation, "yes", "y", false,
"Don't ask for confirmation for closing multiple connections.")
return disconnect
}

Expand Down Expand Up @@ -1290,7 +1286,7 @@ func runConnectCommand(flags *ConnectFlags, c *command, args []string, opts *sub
selectList := flattenCVDs(hosts)
selectList = filterSlice(selectList, func(cvd *RemoteCVD) bool { return cvd.ConnStatus == nil })
// Confirmation is only necessary when the user didn't specify devices.
if len(selectList) > 1 && !flags.skipConfirmation {
if len(selectList) > 1 && !flags.SkipConfirmation {
toStr := func(c *RemoteCVD) string {
return fmt.Sprintf("%s/%s/%s", c.Host, c.Group, c.Name)
}
Expand Down Expand Up @@ -1738,7 +1734,7 @@ func runDisconnectCommand(flags *ConnectFlags, c *command, args []string, opts *
merr = multierror.Append(merr, fmt.Errorf("connection not found for %s/%s/%s", flags.host, flags.group, name))
}
}
if len(statuses) > 1 && !flags.skipConfirmation {
if len(statuses) > 1 && !flags.SkipConfirmation {
var err error
statuses, err = promptConnectionSelection(statuses, c)
if err != nil {
Expand Down
6 changes: 3 additions & 3 deletions pkg/cli/cli_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -173,14 +173,14 @@ func TestBuildAgentCmdline(t *testing.T) {
flags := ConnectFlags{
ServiceFlags: &ServiceFlags{
RootFlags: &RootFlags{
Verbose: true, // verbose
SkipConfirmation: false,
Verbose: true, // verbose
},
ServiceURL: "service url",
Zone: "zone",
Proxy: "http proxy",
},
host: "host",
skipConfirmation: false,
host: "host",
}
device := "device"
args := buildAgentCmdArgs(&flags, device, ConnectionWebRTCAgentCommandName)
Expand Down
Loading