-
Notifications
You must be signed in to change notification settings - Fork 899
/
set.go
82 lines (62 loc) · 1.73 KB
/
set.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
Copyright (c) 2022 VMware, Inc. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0.
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 ssh
import (
"context"
"flag"
"github.com/vmware/govmomi/govc/cli"
"github.com/vmware/govmomi/govc/flags"
"github.com/vmware/govmomi/vapi/appliance/access/ssh"
)
type set struct {
*flags.ClientFlag
enabled bool
}
func init() {
cli.Register("vcsa.access.ssh.set", &set{})
}
func (cmd *set) Register(ctx context.Context, f *flag.FlagSet) {
cmd.ClientFlag, ctx = flags.NewClientFlag(ctx)
cmd.ClientFlag.Register(ctx, f)
f.BoolVar(&cmd.enabled,
"enabled",
false,
"Enable SSH-based controlled CLI.")
}
func (cmd *set) Process(ctx context.Context) error {
if err := cmd.ClientFlag.Process(ctx); err != nil {
return err
}
return nil
}
func (cmd *set) Description() string {
return `Set enabled state of the SSH-based controlled CLI.
Note: This command requires vCenter 7.0.2 or higher.
Examples:
# Enable SSH
govc vcsa.access.ssh.set -enabled=true
# Disable SSH
govc vcsa.access.ssh.set -enabled=false`
}
func (cmd *set) Run(ctx context.Context, f *flag.FlagSet) error {
c, err := cmd.RestClient()
if err != nil {
return err
}
m := ssh.NewManager(c)
input := ssh.Access{Enabled: cmd.enabled}
if err = m.Set(ctx, input); err != nil {
return err
}
return nil
}